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{:});
更多回答(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!