matlab - 如何为结构中的多个中级字段分配子级别
问题描述
我正在尝试为字段的每个元素分配一个子字段。
这可以通过如下所示的 for 循环来实现,但是,我想对代码进行矢量化。
n = 3;
for i=1:n
mesh.elem(i).x(1) = i;
mesh.elem(i).x(2) = i^2;
end
我调查了交易的使用,并尝试了以下方法:
mesh.elem(1:n).x(1) = (1:n)-1;
但总是收到错误。
解决方案
n = 3;
exponents = 1:2;
values = bsxfun(@power, (1:n)', exponents);
values = num2cell(values, 2);
[mesh.elem(1:n).x] = deal(values{:});
这让你:
>> mesh.elem.x
ans =
1 1
ans =
2 4
ans =
3 9
推荐阅读
- javascript - AWS lambda函数有时会在连接S3 SDK时超时而没有任何错误消息
- postgresql - DB Where 条件基于 2 列的字母比较
- android - Android ffmpeg 二进制和其他 .so 文件执行错误
- axios - Fetch 有效,但是当我使用 Axios 时出现 CORS 错误
- mongodb - 数据不移动到新的分片服务器 mongodb
- php - Chrome加载很长时间才能进入仪表板
- symfony - 根据实体属性ChoiceType多个属性(如何选择返回实体集合或一个实体)
- amazon-iam - 有没有办法为非活动的aws用户设置警报
- python-3.x - 烧瓶响应反斜杠问题
- python - 为什么即使输入是整数,我也会不断收到 TypeError?