我需要将数据作为单元格数组导入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]'
谢谢
答案 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{:});