2013-05-15 64 views
0

我試圖獲取存儲在result_cluster.txt 整數值,並試圖從存儲文件數據存儲到數組的數組無法在MATLAB

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

你確定'a'是單一值而不是矢量嗎?作爲矢量的'a'會導致錯誤。 –

回答

2

你的問題是線上面的14個代碼。你增加i - 然後然後顯示它。因此,當您將a的值存儲在aiclu(i,1)中時,實際上顯示的是aiclu(i+1,1)
當我嘗試它時,你的代碼運行良好,並且直到文件結束時纔會出現錯誤 - 所以while -loop的條件不足。

編輯

如果運行在Matlab調試你的代碼,你會注意到,a最後一個值是一個空向量:

a = [] 

這不能被分配到aiclu

+0

@tabish:請考慮接受此答案,方法是點擊投票按鈕旁邊的複選標記(✓)或評論哪些內容對您不適用。 – Schorsch