Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
Arrays 矢量化结构字段访问(或修改)matlab?有可能吗?_Arrays_Matlab_Vectorization_Variable Assignment_Matlab Struct - Fatal编程技术网

Arrays 矢量化结构字段访问(或修改)matlab?有可能吗?

Arrays 矢量化结构字段访问(或修改)matlab?有可能吗?,arrays,matlab,vectorization,variable-assignment,matlab-struct,Arrays,Matlab,Vectorization,Variable Assignment,Matlab Struct,在多年的匿名之后,我刚刚创建了一个帐户来问一个困扰了我一段时间的问题,但我似乎找不到答案。我真的,真的试过了!下面是: 如果您有matlab结构阵列: something(1).toSay = 'qwe'; something(2).toSay = 'asd'; something(3).toSay = 'zxc'; 有没有办法将字段中这3个条目的重新分配矢量化到say 像 最终结果如下: something(2).toSay >> 'newString2' 我尝试了设置字段

在多年的匿名之后,我刚刚创建了一个帐户来问一个困扰了我一段时间的问题,但我似乎找不到答案。我真的,真的试过了!下面是:

如果您有matlab结构阵列:

something(1).toSay = 'qwe';

something(2).toSay = 'asd';

something(3).toSay = 'zxc';
有没有办法将字段
中这3个条目的重新分配矢量化到say

最终结果如下:

something(2).toSay >> 'newString2'
我尝试了
设置字段
函数的一些功能,但无法使其工作。这个问题我想做的就是避免一个for循环


问题2:如果它是一个由结构组成的单元数组,而不是一个结构数组,会有什么不同吗

您可以将替换字符串放在单元格数组中,然后使用
{:}
索引在赋值的右侧创建一个。在左侧,
something(1:3)。toSay
已经创建了一个逗号分隔的列表,因此我们可以将其括在
[]
中,将右侧的值分配给左侧相应的字段

newvalues = {'newString1', 'newString2', 'newString3'};
[something(1:3).toSay] = newvalues{:};
见:和

关于第二个问题,使其成为结构的单元数组需要额外的步骤,因为当结构位于单元数组中时,无法直接创建逗号分隔的列表。您必须首先将它们转换为结构数组

sarray = [something{1:3}];
[sarray.toSay] = newValues{:};
something(1:3) = num2cell(sarray);
sarray = [something{1:3}];
[sarray.toSay] = newValues{:};
something(1:3) = num2cell(sarray);