Access Elements of a Matrix, via an array of varying size
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ayden Clay
el 2 de Abr. de 2020
Comentada: Ameer Hamza
el 2 de Abr. de 2020
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 comentarios
Ameer Hamza
el 2 de Abr. de 2020
Adam, agree. I, too, use idx too commonly for subscripts. I realized this while writing the answer that it can create confusion sometimes.
Respuesta aceptada
Ameer Hamza
el 2 de Abr. de 2020
Editada: Ameer Hamza
el 2 de Abr. de 2020
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!