2017-08-25 26 views
0

我有一個單元陣列(3 x 4),稱爲輸出,每個單元中包含一個1024 x 1024矩陣。我想繪製輸出{1,:}中的4個矩陣。此外,我有一個名爲dinfo的結構,它相應地包含每個矩陣的名稱(矩陣名稱=「name」的字段)。我希望每個圖像都以它的名字命名。這裏是我寫到目前爲止的代碼:使用Imagesc Matlab從單元陣列生成圖像

for i = 1:length(output{1,:}) 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
    title(num2str(dinfo.name(i))) 
end 

我不斷收到錯誤,「長度有太多的輸入參數」。如果我更改代碼以避免長功能相關的錯誤:

for i = 1:4 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
    title(num2str(dinfo.name(i))) 
end 

我得到的錯誤,「預期從一個大括號或點索引表達式一個輸出,但有4個結果」。

有關如何解決這兩個錯誤的任何想法?

感謝您的時間:)

回答

1

output{1,:}comma-separated list;它包含第一行output的1024個矩陣,所以length有1024個參數。獲得列的數量,最好的辦法是使用size(...,2)

for i = 1:size(output,2) 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
end 

至於第二個錯誤,沒有與dinfo.name一些錯誤;可能它也是逗號分隔的列表,因爲dinfo是一個結構數組。嘗試使用dinfo(i).name而不是dinfo.name(i)

+0

太棒了!我非常感謝你的簡潔和有益的迴應! – itend