gpt4 book ai didi

matlab - setfield 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:14 24 4
gpt4 key购买 nike

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

[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) sets the contents of the specified field to the value V. This is equivalent to the syntax S.field = V. S must be a 1-by-1 structure. The changed structure is returned.

在不捕获返回值的情况下,第一个 setfield 调用会将修改后的 struct 分配给 ans 变量。

因此下面的代码也有效,但应该避免:

a.b = [0 0 0];
setfield(a, 'b', {1}, 2);
a = setfield(ans, 'b', {2}, 3);

关于matlab - setfield 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com