Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中从结构中创建变量_Matlab_Variables_Structure - Fatal编程技术网

在matlab中从结构中创建变量

在matlab中从结构中创建变量,matlab,variables,structure,Matlab,Variables,Structure,下面的例子表达了我试图解决的问题类型: clear all textdata = {'DateTime','St','uSt','Ln','W'}; data = rand(365,4); Final = struct('data',data,'textdata',{textdata}) clear textdata data 由此可知,Final.data包含与Final.textdata中的标题相对应的值,不包括第一个('DateTime')。因此Final.data(:,1)与标题“St

下面的例子表达了我试图解决的问题类型:

clear all
textdata = {'DateTime','St','uSt','Ln','W'};
data = rand(365,4);
Final = struct('data',data,'textdata',{textdata})
clear textdata data
由此可知,Final.data包含与Final.textdata中的标题相对应的值,不包括第一个('DateTime')。因此Final.data(:,1)与标题“St”。。。等等我要做的是在工作区中为每个向量创建一个变量。因此,我将在工作区中为St、uSt、Ln和W设置一个变量,并在Final.data中给出相应的值


如何做到这一点?

这能解决您的问题吗:

    for ii=2:length( textdata )
      assignin('base',Final.textdata{ii},Final.data(:,ii-1));
    end

如果我误解了,请告诉我。

这能解决您的问题吗:

    for ii=2:length( textdata )
      assignin('base',Final.textdata{ii},Final.data(:,ii-1));
    end

如果我误解了,请告诉我。

您的问题的直接答案是使用
assignin
功能,就像这样(编辑:就像10分钟前macduff建议的那样):

但是,我强烈反对使用动态变量名对这样的数据进行编码。以这种方式开始的代码通常以充满长字符串连接和eval语句的意大利面代码结束。最好是使用这样的结构

for ix = 1:4
    dataValues(Final.textdata{ix+1}) = Final.data(:,ix);
end
或者,要在一行中获得相同的结果:

dataValues = cell2struct(num2cell(Final.data,1), Final.textdata(2:end),2)

您的问题的直接答案是使用
assignin
功能,就像这样(编辑:就像10分钟前macduff建议的那样):

但是,我强烈反对使用动态变量名对这样的数据进行编码。以这种方式开始的代码通常以充满长字符串连接和eval语句的意大利面代码结束。最好是使用这样的结构

for ix = 1:4
    dataValues(Final.textdata{ix+1}) = Final.data(:,ix);
end
或者,要在一行中获得相同的结果:

dataValues = cell2struct(num2cell(Final.data,1), Final.textdata(2:end),2)

这是我一直在寻找的,但我的数据存储在一个结构中,类似于上面的“最终”(问题修正)。这是我一直在寻找的,但我的数据存储在一个结构中,类似于上面的“最终”(问题修正)。很棒的方法,但如上所述,数据最初是在一个结构中,那么我如何将其应用于我的数据(见修订的问题),即如何获取textdata中的不同单元格?很好的方法,但如上所述,数据最初是在一个结构中,那么我如何将其应用于我的数据(见修订的问题),例如,如何访问textdata中的不同单元格?