Access Elements of a Matrix, via an array of varying size
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello, I would like to access elements of an N-D matrix, by inputting an Nx1 vector as it's element.
Currently, I have an array that contains the indices that I would like, for example:
idx = [1,2,3,4,5];
a = data.set(1,2,3,4,5);
Howevever, the size of idx is variable based on the dimensions of the matrix, and I can't seem to figure out how to do this without hard-coding it up. I've looked into the sub2ind function, but don't believe that it will serve the purpose I need.
Can anybody help?
댓글 수: 9
Ameer Hamza
2020년 4월 2일
Adam, agree. I, too, use idx too commonly for subscripts. I realized this while writing the answer that it can create confusion sometimes.
채택된 답변
Ameer Hamza
2020년 4월 2일
편집: Ameer Hamza
2020년 4월 2일
I believe you should be able to use sub2ind for this purpose, but here is a simpler solution with cell array
A = rand(4,5,10,20); % a 4x5x10x20 matrix
Subs = {1, 3, 5, 10};
required_element = A(Subs{:});
For you example
Subs = [1,2,3,4,5];
Subs = num2cell(idx);
a = data.set(Subs{:});
댓글 수: 3
추가 답변 (0개)
참고 항목
카테고리
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!