HELP!! I need to use a loop to make my cell array
2 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
回答(2 个)
Image Analyst
2018-3-3
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 个评论
Image Analyst
2018-3-3
编辑:Image Analyst
2018-3-3
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.
Ahmet Cecen
2018-3-3
编辑:Ahmet Cecen
2018-3-3
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!