2017-08-25 6 views
0

出力と呼ばれるセル配列(各セルに1024 x 1024行列を含む)があります。 ouput {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)を使用している:2番目のエラーについては

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

dinfo.nameに何か問題があります。 dinfoは構造体配列なので、おそらくコンマ区切りのリストでもあります。 dinfo.name(i)の代わりにdinfo(i).nameを使用してください。

+0

素晴らしい!私はあなたの簡潔で有益な応答に本当に感謝します! – itend

関連する問題