0
fname = dir('*sir');  
dayH = zeros(length(fname),1360,3600);
for i=1:length(fname)   
    dayH(i,:,:) = loadsir(fname(i).name);
end  


fname = dir('*sir');  
dayH = cell(1,length(fname));  
for i=1:2  
   dayH{i} = loadsir(fname(i).name); 
end

基本的に、すべてのファイルをロードします。これらの特殊なファイルをロードする、loadsir という別の .m ファイルがあります。.sir ファイルの出力は、1360x3600 の配列になります。

現在、そのコードは「524288 要素を超える変数の要約を表示できません」と言ってクラッシュしています。1360X3600=500万くらいだからかな?

4

1 に答える 1

2

Sergのコメントを答えとして:

;のどこかでセミコロン () が抜けている可能性がありますloadsir。次に、Matlab は、出力を印刷したいと考えますが、要素数が多いために印刷できません。

さらに、今後このようなことが起こらないようにするために、次のことを行います。

Matlab は解釈された言語です。つまり、コンパイルは必要ありません。入力中にすべてのコードを解析できるため、オートコレクトなどが可能になります。もちろん、この種のことは標準の Matlab に既に含まれています。まだ行っていない場合は、時々 Matlab 独自のエディターでコーディングしてください。エディターの右側の垂直バーを介して、そのような愚かな間違い/エラー (およびその他の多く) を警告しますが、これに限定されません。ウィンドウの右上にある小さな四角形は常に緑色になっている必要があります。オレンジ色または赤色の場合は、それぞれ改善または修正する必要があります。

右側の縦棒は、改善の余地があるファイル内のすべての行の概要です。小さなオレンジ/赤のバーがどこかに表示された場合、マウスを重ねると、どの行の何が問題なのかがわかります。それをクリックすると、エディターがその行に移動します。この行には、オレンジ色または赤色の波線が引かれている可能性があります。行の上にマウスを置くと、役立つ提案<alt>+<enter>が表示されることが多く、単純な間違いを修正するのに十分な場合がよくあります。Matlab で大規模なアプリケーションを開発する場合、これは不可欠なツールだと思います。

もちろん、このツール (「コード アナライザー」、以前は「mlint」) が表示するエラー/警告を構成できます。時には、回避できない非効率性についての警告が表示されることがあります。行の後ろにOKディレクティブを追加してそれを抑制します(%#ok)が、コードアナライザーの目的を完全に打ち負かすため、「迷惑な」ものすべてを抑制する習慣をつけないでください:)

于 2012-11-17T06:46:24.023 に答える