Loop into cell array

1 visualizzazione (ultimi 30 giorni)
Stu
Stu il 2 Mar 2018
Risposto: Image Analyst il 2 Mar 2018
I am trying to combine 4 separate bands into a multispectral image (960x1280x4).
I have 4 cell arrays of 1315x1 each and I am using 'cat' function to combine.
test=cell(1315,1)
for i=1:1315
test(i)=cat(3,G{i},R{i},RE{i},N{i});
end
I am getting error as "Conversion to cell from uint16 is not possible."
Please help
  2 Commenti
Bob Thompson
Bob Thompson il 2 Mar 2018
How does your code define G, R, RE, and N?
Stu
Stu il 2 Mar 2018
Modificato: Stu il 2 Mar 2018
Green band, red band, Red Edge band and NIR band. So each of them is a 1315x1 cell array

Accedi per commentare.

Risposte (1)

Image Analyst
Image Analyst il 2 Mar 2018
You need to use braces to put each created image into a new cell. See the FAQ to get a good, intuitive feel for what a cell array is http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Try this:
numImages = length(G);
allImages = cell(numImages , 1);
for k = 1 : numImages
allImages{k} = cat(3, G{k}, R{k}, RE{k}, N{k});
end

Community Treasure Hunt

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

Start Hunting!

Translated by