0

result_cluster.txt に格納されている整数値をフェッチして、配列に格納しようとしています

aiclu(i,1)=a; 

しかし、私は望ましい結果を得ていません。代わりに、の値が0配列に格納されます。これが私のコードです:

fid20=fopen('result_cluster.txt','r');
i=1;
k=1;
aclu_end=zeros(11,1);
aiclu=zeros(962,1);

while(~feof(fid20))

   a=fscanf(fid20,'%d',1);
   disp(a); 
   disp(i);

   aiclu(i,1)=a; 
   i=i+1;

   disp(aiclu(i,1));
   if a==32
     aclu_end(k,1)=i;

     disp('hello');
     disp(aclu_end(k,1));
     k=k+1;
   end    
end
fclose(fid20);

result_cluster.txt

2
3
4
34
56

81
85 
89

102
109
110 
...

私はこの出力を得る:

disp(a) = 2
disp(i) = 1

aiclu(i,1)=a;私はこのエラーが発生します :"??? Subscripted assignment dimension mismatch."

4

1 に答える 1

2

あなたの問題は、上記のコードの 14 行目にあります。インクリメントiしてから表示します。aしたがって、 inの値を保存している間、aiclu(i,1)実際には が表示されaiclu(i+1,1)ます。
コードを試してみると問題なく動作し、ファイルの最後までエラーが発生しないため、ループの条件whileが不十分です。

編集

コードを Matlab デバッガーで実行すると、 の最後の値aが空のベクトル であることがわかります。

a = []  

これは に割り当てることができませんaiclu

于 2013-05-15T20:28:47.020 に答える