如何在Matlab中使用字符串数组创建具有字段的结构?

时间:2018-12-14 03:58:52

标签: matlab struct

我有以下代码,我试图用字符串单元格中的字段名创建一个结构。

data1具有以下数据,它是5x4:

1   5    298      53
2   9    284      35
3   0    582      329
4   17   892      67
45  183  45       29

data1 = xlsread('data1.xlsx');
namesoftags = {'timeaxis','cputime','flux','volts'};
for i =1:4
    S = cell2struct(data1(:,i),namesoftags(i));
end

但是它给出了这个错误:

Error using cell2struct
Unknown command option.

Error in structuredemo (line 4)
    S = cell2struct(data1(:,i),namesoftags(i));

谢谢。

1 个答案:

答案 0 :(得分:3)

您正在向data1(:,i)函数提供矩阵cell2struct而不是单元格。但是,您不需要此功能即可在此处完成目标。使用S.(fieldname)来构建您的结构。

data1 = xlsread('data1.xlsx');
namesoftags = {'timeaxis','cputime','flux','volts'};
for i =1:4
    S.(namesoftags{i}) = data1(:,i);
end

S = 

  struct with fields:

    timeaxis: [5×1 double]
     cputime: [5×1 double]
        flux: [5×1 double]
       volts: [5×1 double]