2

ネストされた for ループがあります。内側のループには、反復ごとにサイズと値を変更する配列があります。

a=[ 2 3 4]

そして次の繰り返しでは次のようになります:

a=[9 5]

しかし、私のコードの結果は次のとおりです。

a=[9 5 4]

a(3) が問題です。これは前の反復からのものであり、私はそれを望まないので、どうすればよいですか?

ここにコードを書く方法がわかりません。多くの関数が含まれているため、理解できないでしょう!?

しかし、それはこのようなものです:

for j=1: 5
%l is the length of row in cell array(a) that varies from one row to another
for i=1:l
 dn=a{j,i};
spp(t)=dn(1)
end
 targ{j,1}=spp;
end

ここでsppが問題です

4

1 に答える 1

3

clear一時変数を削除するコマンドを挿入します (spp要素が 3 つあると、クリアするか宣言しない限り、要素が 2 つのベクトルに戻ることはありません)。

...
targ{j,1}=spp;
clear spp;
...

または、変数を設定する前に変数を宣言することで、matlab-way をコーディングすることもできます。この状況では、クリア コマンドは必要ありません。

for j=1:5

    %l is the length of row in cell array(a) that varies from one row to another
    spp = zeros(1,l);
    for i=1:l
    ...
于 2013-08-07T08:06:42.990 に答える