【问题标题】:Import data as a cell array in a script in MATLAB在 MATLAB 的脚本中将数据作为元胞数组导入
【发布时间】:2015-02-06 23:42:36
【问题描述】:

我需要将许多文件的数据作为元胞数组导入 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]'

谢谢

【问题讨论】:

  • 当然有。发布一个包含文件内容和所需导入结果的小示例
  • 谢谢,我刚刚发布了。如果您需要更多信息,请告诉我。
  • 我认为这足以理解你想要什么。我现在看不下去了。也许有人会。另外,我会尝试稍后回来

标签: matlab file cell-array


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试这个-

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

    【讨论】:

    • 这会生成一个表格,而不是一个元胞数组。您必须从表格转换为元胞数组
    • 确实我在寻找一个单元格数组,但实际上我想要的最终结果是一个结构,所以无论如何我都必须转换它。如果有办法直接获取结构体,请分享。如果没有,这会做。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多