我試圖從.txt文件讀取數據。樣本數據如下。我需要一種算法來讀取M-N行號。雖然我可以使用while/for循環,但恐怕它可能會變得非常慢。謝謝!從txt文件(MATLAB)中讀取'm-to-n'行號
a=[ 1 6 11 16 ;
2 7 12 17 ;
3 8 13 18 ;
4 9 14 19 ;
5 10 15 20] ; % data is in Test.txt -->
% fid = fopen('Test.txt');
% a=a.'; fprintf(fid, '%.3f\t%.3f\t%.3f\t%.3f\r\n', a(:)) ;
fid = fopen('Test.txt') ;
AnsMat = fscanf(fid, '%f %f %f %f')
AnsMat = [2 7 12 17 ; 3 8 13 18] ; % Read row-numbers 2 to 4 this time
嗨。謝謝,但這是行不通的,因爲'm-n + 1'明智地提取數據列而不是明智的。重要的是我可以按行獲取數據。你能否建議另一種方法,或者刪除這個解決方案? – Maddy 2012-03-01 04:13:12
然後你可以給出一些上下文來說明爲什麼數據必須是行式的嗎?使用'cell2mat'會將你的數據轉換成矩陣,之後你可以應用行方式的操作。如果你一次只讀一行(比如說它是一個循環),那麼你第一次只用一行代碼來讀一行,而用'n-1'和'1'代替'm-n + 1 ',在隨後的循環中,您可以使用'fscanf'(因爲文件句柄現在指向您感興趣的行,所以不需要再跳過)。 – 2012-03-01 04:16:41
哎呀!抱歉!我做了一個='。'所以我正在驗證它是錯誤的。非常感謝。這正是我需要的! – Maddy 2012-03-01 04:21:23