我有a.b一个三元素矢量.我想改变前2个元素.第三行中的代码不包括第二行的更改.例如,第二行响应为:
[2 0 0]
Run Code Online (Sandbox Code Playgroud)
第三行响应为:
[0 3 0]
Run Code Online (Sandbox Code Playgroud)
我的代码如下.
a.b = [0 0 0]
setfield(a,'b',{1},2)
setfield(a,'b',{2},3)
Run Code Online (Sandbox Code Playgroud)
这段代码就是一个例子.这是为了说明问题.
您可以将其更正为
a.b = [0 0 0];
a = setfield(a, 'b', {1}, 2);
a = setfield(a, 'b', {2}, 3);
Run Code Online (Sandbox Code Playgroud)
在以下的帮助下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);
Run Code Online (Sandbox Code Playgroud)