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_Declaration - Fatal编程技术网

Matlab 动态变量声明

Matlab 动态变量声明,matlab,variables,declaration,Matlab,Variables,Declaration,假设我们已将数据加载到单元格数组中: DATA={'foo',[1,5];'bar',[2,6]} 有没有办法在数据中声明以第2列内容的第1列命名的变量?有一个assignin函数,它接受一个变量名并为其指定一个特定值: for r = 1:size (DATA, 1) assignin ('caller', DATA{r,:}); end 有一个assignin函数,它接受一个变量名并为其指定一个特定值: for r = 1:size (DATA, 1) assignin ('ca

假设我们已将数据加载到单元格数组中:

DATA={'foo',[1,5];'bar',[2,6]}

有没有办法在
数据
中声明以第2列内容的第1列命名的变量?

有一个
assignin
函数,它接受一个变量名并为其指定一个特定值:

for r = 1:size (DATA, 1)
  assignin ('caller', DATA{r,:});
end

有一个
assignin
函数,它接受一个变量名并为其指定一个特定值:

for r = 1:size (DATA, 1)
  assignin ('caller', DATA{r,:});
end

您可以使用
eval

for ii = 1:size(DATA,1)
    eval( [DATA{ii,1}, ' = ', num2str( DATA{ii,2} )] );
end
但是,不允许使用
eval

您可以改为使用动态字段名:

s = cell2struct( DATA(:,2), DATA(:,1), 2 );

您可以使用
eval

for ii = 1:size(DATA,1)
    eval( [DATA{ii,1}, ' = ', num2str( DATA{ii,2} )] );
end
但是,不允许使用
eval

您可以改为使用动态字段名:

s = cell2struct( DATA(:,2), DATA(:,1), 2 );

这在函数中不起作用。更糟糕的是,它会产生意想不到的结果:变量将在
'base'
中分配,而不是在函数的上下文中分配:O@Shai不间断电源!你说得对。我误解了
base
caller
,我认为
caller
在堆栈中处于较低的一级,并以当前范围为基础。这在函数中不起作用。更糟糕的是,它会产生意想不到的结果:变量将在
'base'
中分配,而不是在函数的上下文中分配:O@Shai不间断电源!你说得对。我误解了
base
caller
,我认为
caller
是堆栈中的一级,并以当前范围为基础。这不包括变量不是向量的情况,例如ND矩阵(甚至2D矩阵)、单元格数组、结构,etc@carandraug你是对的。我使用了
num2str
而不是我个人最喜欢的
sprintf
来覆盖简单的向量。但是
eval
在这里确实有局限性。可能与
disp
结合使用?我更喜欢使用动态名称的结构…这不包括变量不是向量的情况,例如ND矩阵(甚至2D矩阵)、单元格数组、结构、,etc@carandraug你是对的。我使用了
num2str
而不是我个人最喜欢的
sprintf
来覆盖简单的向量。但是
eval
在这里确实有局限性。可能与
disp
结合使用?我更喜欢动态名称的结构。。。