真的對這個問題感到沮喪。基本上有一個txt文件,具有代碼行,代碼是字母和數字(不同長度)的混合,不包含逗號和空格,即:txt文件中的一個代碼是X32W21039A23在MATLAB中讀取txt文件(char和數字)到數值數組/矩陣中的最簡單方法?
我需要閱讀它變成了一個數值數組/矩陣,這樣我就很容易操作它,而且我必須用表中相應的數字代替這些字母。這就是我現在有
fid = fopen('upcs.txt');
mat = [];
if fid == -1
disp('File open was not successful')
else
while feof(fid) == 0
% Read contents of file and store into a matrix
aline = fgetl(fid);
[P] = sscanf(aline, '%s');
if length(A) == 12
mat = [mat P];
end
end
codes =reshape(mat, length(mat)/12, 12)
基本上我已取出所有的來自不是12個數字長(I可以做到這一點)txt文件線,並轉移剩餘的線成一個字符陣列,「墊子」 。但是,mat是一個字符數組,不是數字數組。我嘗試過這樣的功能,如cell2mat和str2num,但無濟於事,因爲我相信代碼被視爲單元格或字符串,而不是數字。我相信我需要在數組中的字符串之間放置空格。
因此歸結起來,任何人都可以幫我輕鬆地傳輸在TXT文件中的代碼轉換成以這樣的方式,我可以很容易地操作它像數的向量,即:[1 2 3]感謝
我相信你的問題是'的sscanf(艾琳,「%s」的)'。你正在閱讀字符串。只要改成'%d'的'%f',你就會得到P. – 2013-03-13 08:52:57
中的數字我不確定你的意思是「我需要在數組中的字符串之間放置空格」。你的問題究竟是什麼?字符仍然表現爲數字,你仍然可以進行算術或索引操作。 – jazzbassrob 2013-03-13 08:52:57
說一個在txt文件中的代碼是X32W21039A23,我需要用數字-2替換字母。如果我執行上面的腳本,並用命令代碼(1)= -2將-2替換爲-2,我只是得到一個空白的代碼。它看起來像這樣'32W21039A23' – 2013-03-13 13:29:46