HELP!! I need to use a loop to make my cell array

I have a 40x1 cell array, "locations," where each element is a 270x33 matrix. My goal is a 1x1320 cell array, "master locations," where each element is a 270x1 column vector, which would be all of the individual columns from the elements of "locations." Essentially, I want a code that automates the following
master_location{1} = locations{1}(:,1)
master_location{2} = locations{1}(:,2)
.
.
.
master_location{34} = locations{2}(:,1)
.
.
.
master_location{1320} = locations{40}(:,33)

Antworten (2)

Image Analyst
Image Analyst am 3 Mär. 2018

0 Stimmen

Try this:
counter = 1;
for k = 1 : 40
for col = 1 : 33
master_location{counter} = locations{k}(:, col);
counter = counter + 1;
end
end
Why does it have to be a cell array rather than a simple, regular numerical array like a double?

2 Kommentare

Luke Hudgin
Luke Hudgin am 3 Mär. 2018
I suppose it could be a double. I was wanting to make it a cell array for the purpose of organization. How could you make it a double?
Image Analyst
Image Analyst am 3 Mär. 2018
Bearbeitet: Image Analyst am 3 Mär. 2018
Something like
master_location(counter, col) = locations{k}(:, col);
but you need to preallocate space for master_location before the loop. If you need more help, attach a .mat file with your data.
Or maybe what Ahmet gave will work. I like to have data to test with, so attach yours.

Melden Sie sich an, um zu kommentieren.

Ahmet Cecen
Ahmet Cecen am 3 Mär. 2018
Bearbeitet: Ahmet Cecen am 3 Mär. 2018

0 Stimmen

Huh, my answer to this question seems to have disappeared.
cat(2,master_location{:})
This should solve your specific problem. The output will be an array instead. If you really want a cell, use mat2cell afterwards.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 3 Mär. 2018

Bearbeitet:

am 3 Mär. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by