在MATLAB的脚本中将数据导入为单元数组

时间:2015-02-06 13:00:49

标签: matlab file cell-array

我需要将数据作为单元格数组导入Matlab以获取许多文件,然后再对它们执行一些操作。有没有什么办法可以在脚本中导入数据来自动而不是手动执行?

我手动做的是:

-Home>导入数据

选择.txt文件

- 作为单元格数组,2列作为文本。

-Column delimiters:逗号。

更新: 这是我的.txt文件的一小部分:

/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/d-0197.bmp, [329 210 50 51]
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/c-0044.bmp, [215 287 59 48]
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0114.bmp, [298 244 46 45]
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/102.bmp, [243 126 163 143]
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0120.bmp, [250 400 48 48]

结果:包含2个文本列的单元格数组。

- 第一列包含图片的路径:

'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/d-0197.bmp'
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/c-0044.bmp'
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0114.bmp'
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/102.bmp'
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0120.bmp'

- 第二列包含数组文本:

' [329 210 50 51]'
' [215 287 59 48]'
' [298 244 46 45]'
' [243 126 163 143]'
' [250 400 48 48]'

谢谢

2 个答案:

答案 0 :(得分:1)

试试这个 -

T = readtable('fileName.txt','Delimiter',',','ReadVariableNames',false)

答案 1 :(得分:1)

您可以使用importdata。这给出了不同单元格中的每一行。然后使用'split'选项使用regexp拆分每一行:

y = importdata('filename.txt');
y = regexp(y, ',', 'split'); %// or ', '
y = cat(1, y{:});