How to access specific elements of an array?
3 ビュー (過去 30 日間)
古いコメントを表示
Suppose I have two matrices A and x as follows:
x =
1 2
2 3
A =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Each row of x contains the row and column indices of an element of A that I would like to access and change. In the above example, I want to change the (1,2) and (2,3) elements of A. Suppose I want to set the value of these elements to 5. The command 'A([1 2],[2 3]) = 5;' produces A =
1 5 5 1
1 5 5 1
1 1 1 1
1 1 1 1
However, what I want is the following:
A =
1 5 1 1
1 1 5 1
1 1 1 1
1 1 1 1
In my actual code, A and x may have thousands of elements each. Therefore, I am wondering whether it is possible to do this without using a for loop?
0 件のコメント
採用された回答
Star Strider
2017 年 7 月 14 日
編集済み: Star Strider
2017 年 7 月 14 日
One approach:
ix = sub2ind(size(A), x(:,1), x(:,2)); % Change Subscripts To Linear Index Vector
A(ix) = 5;
A =
1 5 1 1
1 1 5 1
1 1 1 1
1 1 1 1
2 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!