gpt4 book ai didi

arrays - MATLAB 结构数组赋值

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

我有一个结构数组。让我们说 s(1).value, ... , s(5).value。我有一个值向量,比方说 vals = [1 2 3 4 5],我想将其分配给结构数组。所以我想要用伪代码编写:s(:).value = vals.

如下所示,有一个已知的解决方案。但是真的不可能像伪代码那样在 1 行中完成这个赋值吗?

% Vector of values
vals = [1 2 3 4 5];
n = length(vals);

% Initialize struct
s(n).values = 0;

% Put vals into my struct.values
[s(1:n).values] = ???

% Known solution that i am not satisfied with:
vals_c = num2cell(vals);
[s(1:n).values] = vals_c{:};

最好的问候,乔纳斯

最佳答案

可以使用 cell2struct 在一行中完成此操作结合 num2cell。

% Vector of values
vals = [1 2 3 4 5];
n = length(vals);


% Put vals into my struct.values
s = cell2struct(num2cell(vals), 'values', 1)

% transpose if orientation is important
s = s.';

它不是很漂亮,但它确实在一行中完成了。 cell2struct 支持多个条目,因此您可以填充多个字段。

最大的缺点是它从头开始创建结构,因此如果您需要将此数据添加到现有结构,则必须进行结构合并。

关于arrays - MATLAB 结构数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39451029/

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