我有一个三元素向量a.b
。我想改变前两个元素。第三行的代码不包括第二行的更改。例如,第二行响应为:
[2 0 0]
第三行响应为:
[0 3 0]
我的代码如下:
a.b = [0 0 0]
setfield(a,'b',{1},2)
setfield(a,'b',{2},3)
下面的代码是一个示例。
可以改成
a.b = [0 0 0];
a = setfield(a, 'b', {1}, 2);
a = setfield(a, 'b', {2}, 3);
从setfield
的帮助:
S = setfield(S,'field',V)设置指定字段的内容这相当于S.field = V的语法。S一定是1乘1的结构。
返回修改后的结构。
不捕获返回值,第一个setfield
调用将把修改后的struct
赋值给ans
变量。
a.b = [0 0 0];
setfield(a, 'b', {1}, 2);
a = setfield(ans, 'b', {2}, 3);
比setfield()更快一点的替代方法是
a.b(1:2) = [2 3]
或者如果索引不是序列
。B ([1 3]) = [2 5]