Reading text file using fscanf in octave / matlab into cell array
我有一个用逗号分隔的单个文本文件,该文件包含要尝试导入单元格数组中的字符串和整数。然后,我想将其导出到基于相同Resonance Freq的多个文件。并将文本添加到文件名行
这是要导入的文本文件的示例:(请注意,文件将比这个大得多)
1 2 3 4 5 6 7 | 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 |
这是我要创建的导出文本文件(文本file1)
1 2 3 | 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 |
这是我要创建的导出文本文件(文本file2)
1 | 123.912902832031250,2,/tmp/p000002.wav,00:00:02,44100,3675,2 |
这是我要创建的导出文本文件(文本file3)
1 | 343.912902832031250,5,/tmp/p000002.wavadded ,00:00:02,44100,3675,0 |
我在使用fscanf并使用逗号分隔的数据时遇到问题
1 2 3 |
当我访问m_s(1,2)这样的单元格时,我得到的是单个字母而不是字段。如何获得它,所以当我键入m_s(1,2)时,我会得到整个字段示例
m_s(2,1) should give me
277.912902832031250
谢谢
PS我正在使用Octave音程,而textscan与之不兼容。
使用textscan导入时尝试跳过标题行:
1 2 3 |
看起来Octavetextscan与Matlab不完全??兼容。 Octave 3.4.0中的strread和textscan与Matlab 2009b(可能还有更高版本)中的实现不完全兼容。例如,在Octave 3.4.0中未实现N = -1选项(重复读取格式直到字符串结尾)。使用N =正整数(读取格式N次)与Matlab中的工作原理相同。我必须使用fscanf,但可以使用定界符