无法在matlab中将数据从文件存储到数组中

时间:2013-05-15 19:01:16

标签: matlab

我正在尝试获取存储在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."

1 个答案:

答案 0 :(得分:2)

您的问题位于上述代码的第14行。您递增i - 然后然后显示它。因此,当您在a中存储aiclu(i,1)的值时,实际上是在显示aiclu(i+1,1)
我的代码在我尝试时运行良好,并且在文件结束之前不会发生错误 - 因此while循环的条件不合适。

修改

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

a = []  

这不能分配给aiclu