【发布时间】:2012-02-15 23:17:24
【问题描述】:
假设我有一个结构数组arr,其中每个元素都有一堆字段,包括一个名为val 的字段。我想将每个元素的 val 字段增加一些常数,如下所示:
for i = 1:length(arr)
arr(i).val = arr(i).val + 3;
end
这显然可行,但我觉得应该有一种方法可以只用一行代码(并且没有 for 循环)来做到这一点。我想出的最好的是两行,需要一个临时变量:
newVals = num2cell([arr.val] + 3);
[arr.val] = deal(newVals{:});
有什么想法吗?谢谢。
【问题讨论】:
标签: arrays matlab struct field assign