【发布时间】:2013-03-27 14:21:26
【问题描述】:
我有一个逗号分隔的单个文本文件,其中包含字符串和整数,我正在尝试将其导入到元胞数组中。然后我想将它导出到基于相同共振频率的多个文件中。并将文本添加到文件名行
这是要导入的文本文件的示例:(请注意文件会比这个大得多)
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) 应该给我 277.912902832031250
谢谢
PS 我用的是 octave 和 textscan 不兼容。
【问题讨论】:
-
“说它是未定义的。”。你能扩展一下吗?
-
Octave 3.4.0 中的 strread 和 textscan 与它们在 Matlab 2009b 中的实现不完全兼容(可能还有更高的版本)。例如,在 Octave 3.4.0 中没有实现 N=-1 选项(重复读取格式直到字符串结尾)。使用 N=a 正整数(读取格式 N 次)的值与在 Matlab 中的工作方式相同。我必须使用带分隔符的 fscanf