Filter löschen
Filter löschen

n-dimensional matrix - Store the indexes of the n-th dimension in n-th cell

2 Ansichten (letzte 30 Tage)
I have a n-dimensional matrix M. Now I'm looking for a way to create a 1xn cell array, where the index vector of the n-th dimension of M is stored in the n-th cell.
So for example: If the size of M were 40x30x50x20, the resulting cell array should look like this:
myCell = {[1:40], [1:30], [1:50], [1:20]};
How would I do this?

Akzeptierte Antwort

fsgeek
fsgeek am 12 Sep. 2013
Bearbeitet: fsgeek am 12 Sep. 2013
If M is explicitly defined then could you do
vect = size(M); % vect = [40 30 50 20] in your example of M
%{
dim = length(vect); So that we know how many cells there will be.
For your example dim == 4;
%}
myCell = cell(1, dim); % Pre-allocate for speed (thanks for reminding me, Jan!)
for i = 1:dim
myCell{i} = 1:vect(i); % assign a 1 x vect(i) array to each cell
end
The value of myCell after running this code is:
>> myCell
myCell =
[1x40 double] [1x30 double] [1x50 double] [1x20 double]
I hope this helps!
Louis

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by