matlab结构数组增加域,数组 – 如何在Matlab中复制结构域(非标量结构)?

使用

[res(:).tag] = res(:).name;

或者更简单地说,就像你发现自己一样:

[res.tag] = res.name;

左侧带方括号的语法类似于用于捕获函数返回的几个输出的语法:[out1,out2] = fun(…);见MATLAB special characters.

赋值的右侧应该是另一个以逗号分隔的列表.如果它是单个元素,或者您想手动指定列表,则需要deal:

values = {10, 20};

[res.test] = values{:}; % works. {:} produces a comma-separated list

[res.test] = 10,20; % doesn't work. Use `deal`

[res.test] = deal(10,20); % works

[res.test] = 10; % doesn't work, unless `res` is scalar. Use `deal`

[res.test] = deal(10); % also works. 10 is repeated as needed

您尝试[res.tag] = [res.name]的原因;不起作用的是右侧的[res.name]将逗号分隔列表res.name的结果连接成一个数组,因此它与[res.test] = 10的情况相同;以上.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值