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

Import data as a cell array in a script in MATLAB

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

我手动做的是:

-首页 > 导入数据

-选择.txt文件

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

-列分隔符:逗号。

更新: 这是我的 .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]'

谢谢

试试这个-

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

您可以将 importdata. This gives each line in a different cell. You then split each line using regexp'split' 选项一起使用:

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