我有一个三元素向量我想改变前两个元素第三行中的代码不包括第二行中的更改例如,第二行响应为:

[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)设置指定的
值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);

09-05 17:33