我正在尝试获取存储在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."
答案 0 :(得分:2)
您的问题位于上述代码的第14行。您递增i
- 然后然后显示它。因此,当您在a
中存储aiclu(i,1)
的值时,实际上是在显示aiclu(i+1,1)
。
我的代码在我尝试时运行良好,并且在文件结束之前不会发生错误 - 因此while
循环的条件不合适。
修改
如果您在Matlab调试器中运行代码,您会注意到a
的最后一个值是空向量:
a = []
这不能分配给aiclu
。