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-然后显示它。因此,当您存储 in 的值时aaiclu(i,1)您实际上是在显示aiclu(i+1,1)
当我尝试时,您的代码运行良好,并且直到文件末尾才发生错误 - 所以您的while-loop 的条件不充分。

编辑

如果您在 Matlab 调试器中运行代码,您会注意到 for 的最后一个值a是一个空向量:

a = []  

这不能分配给aiclu

于 2013-05-15T20:28:47.020 回答