我想讀取一個csv文件使用textscan。這些字段與','分隔。我用下面的代碼,但它只讀取一行數據到矩陣W.爲什麼textscan只能讀一行
我也試過dlmread(),它得到了錯誤的字段數。
該文件是在linux下構建的,matlab在linux下。
file_id = fopen('H:\data\overlapmatrices\cos.mat.10');
W = textscan(file_id, '%f', 'delimiter', ',' , 'EndOfLine', '\r\n');
fclose(file_id);
clear file_id;
嗨,大家好髒東西,感謝您的答案。我檢查結果並發現textscan()讀取所有字段,但將它們全部放入{1,1},它本身是{1,10 * numberOfFields}。所以textscan()不會識別行。 – gstar2002
dlmread()或csvread()在內部使用dlmread(),也讀取所有字段,但是在錯誤位置單獨分隔行。 – gstar2002
由於您只指定了一種模式以匹配:1'1%單元格數組,因此''%f''可以匹配。每行有10個數字嗎?如果你想把它們分割成單獨的單元格,那麼你需要指定匹配的模式:''%f%f%f%f%f'f(是的,這有點尷尬。不,不能用'EndOfLine')。我不確定這是否真的是行尾問題,但您也可以嘗試不包含該參數。 – horchler