Loop into cell array

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 个评论

How does your code define G, R, RE, and N?
Stu
Stu 2018-3-2
编辑:Stu 2018-3-2
Green band, red band, Red Edge band and NIR band. So each of them is a 1315x1 cell array

请先登录,再进行评论。

回答(1 个)

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

类别

帮助中心File Exchange 中查找有关 Hyperspectral Image Processing 的更多信息

提问:

Stu
2018-3-2

Community Treasure Hunt

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

Start Hunting!

Translated by