2013-08-19 173 views
0

我正在讀取一個.txt文件,當它讀入matlab時,我得到了我的合適向量和所有內容,除了在每個數字的末尾都有分號。現在,我不確定在閱讀文件時是否更好地糾正此錯誤,或者在閱讀完文件後,是否可以用一些代碼快速糾正它。不幸的是,我不知道如何解決這個問題。我正在做這樣的事情。MATLAB:從所有矩陣元素中刪除分號

for i = 1:100000 
    try 
     disp(strcat('ToF_ROI_XYZcoordinates_', num2str(i), '.txt')); 
     ToF_File_ID = fopen(strcat('ToF_ROI_XYZcoordinates_', num2str(i), '.txt')); 
     ToF_XYZ_Coordinates(i,:) = textscan(ToF_File_ID,'%s %s %s'); 
     fclose(ToF_File_ID); 

     disp(strcat('Navi_Endo_RefOrient_', num2str(i), '.txt')) 
     Navi_Orient_File_ID = fopen(strcat('Navi_Endo_RefOrient_', num2str(i), '.txt')); 
     Navi_Endo_RefOrient(i,:) = textscan(Navi_Orient_File_ID,'%s'); 
     fclose(Navi_Orient_File_ID); 

     disp(strcat('Navi_Endo_RefOffsetPosVec_', num2str(i), '.txt')) 
     Navi_Offset_File_ID = fopen(strcat('Navi_Endo_RefOffsetPosVec_', num2str(i), '.txt')); 
     Navi_Endo_RefOffsetPosVec(i,:) = textscan(Navi_Offset_File_ID,'%s'); 
     fclose(Navi_Offset_File_ID); 

    catch err 
     break 
    end 
end 

編輯:我的矩陣看起來是這樣的,如果你感到困惑

[ 1; 2; 3; 4; ] 
| 5; 6; 7; 8; | 
| 9; 1; 2; 3; | 
[ 4; 5; 6; 7; ] 

,我希望它這樣

[ 1 2 3 4 ] 
| 5 6 7 8 | 
| 9 1 2 3 | 
[ 4 5 6 7 ] 

從我的新變量,消除那些分號任何幫助會很好,謝謝!

+0

你能做矩陣A = A'的轉置嗎? – Zero

+0

嗯......我想你誤解了我的矩陣。分號不是輸入,它們是輸出。所以它們是矩陣中的一個字符串。我需要完全刪除該字符串。移調只會把它放在其他地方,每個矩陣元素仍然會在裏面。 – spaderdabomb

+0

「ToF_ROI_XYZcoordinates_」,「ToF_ROI_XYZcoordinates_」和「Navi_Endo_RefOffsetPosVec_」.txt文件的示例內容是什麼? – Marcin

回答

1

仍然有一些事情不清楚,但假設你生成這段代碼的矩陣:

textscan(ToF_File_ID,'%s %s %s') 

如果要分析此擺脫semicolumns的,你可以把它變成這樣:

strrep(textscan(ToF_File_ID,'%s %s %s'), ';', '') 
+1

我不確定'strrep'是否已經存在了很長一段時間,如果你的版本不支持它,可以用'regexprep'替換它' –

+1

你也可以使用'textscan'和'delimiter'選項,不再需要'strrep':'textscan(ToF_File_ID,'%s%s%s','delimiter',{'',';'}) ' –