2016-07-04 10 views
0

以下のコードを書きましたが、完全に機能しますが、約6時間かかります。そこで、私はparforを使って時間を短縮することを提案しました。しかし、私は "下付き文字のディメンションの不一致"というエラーに直面しました。すぐに現れません。 2時間かかると、すべての反復番号を終了した後にエラーメッセージが表示されます。"Parfor":下付き文字のディメンションの不一致

私はあなたのサポートに非常に感謝します!ちなみに、私はforの代わりにparfor ind1=1:720;を入れます!

lon_rs=(reshape(l2aRS.clon_RS,3560*2000,1)); 
lat_rs=(reshape(l2aRS.clat_RS,3560*2000,1)); 
RSsig0=(reshape(l2aRS.sig0_RS,3560*2000,1)); 
RS_s0=zeros(720,360); 
QS_s0=zeros(720,360); 
I=ceil(2*(lon_rs)); 
J=ceil(2*(lat_rs+90)); 
K=ceil(2*(l1cQS.clon_QS)); 
L=ceil(2*(l1cQS.clat_QS+90)); 

for ind1=1:720; 

    ind1 

    for ind2=1:360; 

     indsRS=find((I==ind1) &(J==ind2) &(RSsig0~=0)); 
     len_temp1=length(indsRS); 

     if (len_temp1>0); 
      len_RS(ind1,ind2)=len_temp1;   
      RS_s0(ind1,ind2)=median(RSsig0(indsRS)); 
     end; 

     indsQS=find((K==ind1) &(L==ind2) &(l1cQS.sig_QS~=0)); 
     len_temp2=length(indsQS); 

     if (len_temp2>0); 
      len_QS(ind1,ind2)=len_temp2; 
      QS_s0(ind1,ind2)=median(l1cQS.sig_QS(indsQS)); 
     end; 

    end; 

end; 
+0

コードを編集してください(コードタグに入れてください)。 –

+0

どういう意味ですか?私はこれを初めて使う –

答えて

1

ループを使用しているときはいつでも、ループ内のサイズを最終サイズに変更する可能性のある変数を事前に割り当てることをお勧めします。 parforを使用する場合は、 を事前に割り当ててlen_RSlen_QSとする必要があります。これはRS_s0と同じように、このコードの実行時間を確実に短縮します。また、 "次元の不一致"の問題を解決するかもしれません。

関連する問題