Indexing a matrix with an array
조회 수: 3 (최근 30일)
이전 댓글 표시
Let's say I have a 4x4 matrix A. I can then get the item in place [2,3] by typing A(2,3).
Now let's say I have an array I=[2,3]. I would like to be able to write something like A(I) to get the same result as above. How could I do that?
Thanks.
댓글 수: 0
채택된 답변
Stephen23
2020년 2월 23일
편집: Stephen23
2020년 2월 23일
Use a cell array, e.g.:
C = {2,3}; % use NUM2CELL(I) if required.
A(C{:})
Tested:
>> A = rand(4,4)
A =
0.340974 0.252464 0.596849 0.800738
0.064510 0.270160 0.242550 0.518083
0.546270 0.318667 0.581832 0.409444
0.814609 0.675596 0.588558 0.353607
>> C = {2,3};
>> A(C{:})
ans = 0.24255
댓글 수: 2
Stephen23
2020년 2월 23일
"Is there a function similar to zeros(1,n) or ones(1,n) where I can make C = {0,0,0,0,0,...} of length n?"
Here are two ways:
C = repmat({0},1,n)
C = num2cell(zeros(1,n))
"And what is C called?"
a cell array:
MATLAB does not have a "set" data type:
추가 답변 (0개)
참고 항목
카테고리
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!