Replace Only Certain Values within a Matrix Based on Indices from Another
12 ビュー (過去 30 日間)
古いコメントを表示
Michelle De Luna
2021 年 2 月 13 日
コメント済み: Image Analyst
2021 年 2 月 14 日
Hi all!
I have a 200 X 500 matrix. Within that matrix, only a handful of elements have actual numerical values. I have identified the index position of these numerical values (ind), and I will use the indices to look at another 200 x 500 matrix and find the values at the specified index position. (For example, if the first matrix had a numerical value at the 150th index position, I will look at the 150th index position of the second matrix and keep that value.) However, I want to keep ONLY the values from the second matrix at the index positions I identified in the first matrix, while all of the other values in the matrix are turned to zeros or NaNs. (Whereas the first matrix only has a handful of elements with actual numerical values, the second matrix has a numerical value for all elements.) So, I'm trying to keep the same matrix size (200 x 500), but I want to keep only the values at the index position I identified in the first matrix. Any idea how to do this?
Here's what I have so far...
x ***first matrix (only a few elements have numerical values)
y ***second matrix (all elements have numerical values)
ind = find(x~=0)
y(ind) ***this only gives me the values at the index position but I would like to keep values within matrix structure
0 件のコメント
採用された回答
その他の回答 (1 件)
Image Analyst
2021 年 2 月 13 日
See if this gives you what you want:
y = y .* ind;
If not, then attach your x and y in a .mat file and tell us what you expect as an output.
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!