我有一個用逗號分隔的單個文本文件,其中包含字符串和整數,我嘗試導入到單元格數組中。然後我想根據相同的共振頻率將它導出到多個文件。和文本添加到文件名行使用fscanf在八度/ matlab中讀取文本文件到單元格陣列
這是文本文件導入的樣本:(請注意該文件將遠遠大於這個)
Resonance Freq,number,Filename,time,fs,Split-3675,Session Num
277.912902832031250,1,p000001,00:00:01,44100,3675,0
123.912902832031250,2,p000002,00:00:02,44100,3675,2
277.912902832031250,3,p000003,00:00:03,44100,3675,0
277.912902832031250,4,p000001,00:00:01,44100,3675,1
343.912902832031250,5,p000002,00:00:02,44100,3675,0
277.912902832031250,6,p000003,00:00:03,44100,3675,4
這是導出的文本文件,我想創建(文本文件1)
277.912902832031250,1,/tmp/p000001.wav,00:00:01,44100,3675,0
277.912902832031250,3,/tmp/p000003.wav,00:00:03,44100,3675,0
277.912902832031250,4,/tmp/p000001.wav,00:00:01,44100,3675,1
這就是我想要創建導出的文本文件(文本文件2)
123.912902832031250,2,/tmp/p000002.wav,00:00:02,44100,3675,2
這是導出的文本文件,我想創建(文本文件3)
343.912902832031250,5,/tmp/p000002.wavadded ,00:00:02,44100,3675,0
我遇到的fscanf問題,用逗號分隔的數據
fid = fopen('/tmp/freq_range_color_coded.txt');
m_s = fscanf(fid,'%f %f %s %s %f %f %f');
fclose(fid);
,當我訪問一個細胞就像M_S( 1,2)我取回一個字母而不是一個字段。我怎樣才能得到它,所以當我鍵入M_S(1,2)我回來了整場例子
m_s(2,1) should give me 277.912902832031250
由於我使用的是八度和textscan
PS與其不兼容。
「說它是未定義的。」你可以擴展這個嗎? – 2013-03-27 14:49:15
octave 3.4.0中的strread和textscan並不完全兼容其在Matlab 2009b中的實現(以及可能更新的版本)。例如,N = -1選項(重複讀取格式直到字符串結尾)在Octave 3.4.0中未實現。使用N =正整數(N次讀取格式)的值與Matlab中的工作方式相同。我將不得不使用fscanf與分隔符 – 2013-03-27 15:05:46