Unclear array operation in matlab
1 次查看(过去 30 天)
显示 更早的评论
Dear all, I have created a 5 * 3 array, named as 'conn' and another array as lm which is 1*2 as underneath:
conn= [1 5 6; 2 5 7; 3 4 5 ; 4 5 7; 5 6 8];
lm = [4 ,3];
conn(lm)
while running the code, it gives me the following output.
ans =
4 3
this operation with "conn(lm)" is totally unclear to me when I operate on 5*3 array. I will be grateful if anyone please help me to understand this code.
0 个评论
回答(2 个)
Chunru
2022-9-1
conn= [1 5 6; 2 5 7; 3 4 5 ; 4 5 7; 5 6 8]
lm = [4 ,3];
% The following use lm as "linear" index to reference to conn
% The "linear" index count column by column
% so the 4th element of conn is (4,1)
conn(lm)
conn(10) % (5,2)th element of conn
weikang zhao
2022-9-1
Hello, this is matlab's unique indexing mechanism. For a 5*3 matrix, you can use 1-15 to index all elements.
Matlab uses column-major order, so your code is the same as the result below.
coon=[1 2 3 4 5 5 5 4 5 6 6 7 5 7 8];
lm=[4 3];
The output results are organized as follows
conn(lm)=[coon(4) coon(3)]=[4 3]
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!