作者celestialgod (天)
看板MATLAB
标题Re: [问题] 阵列存值问题
时间Thu Aug 13 18:28:34 2015
% method 1 - for loop
numx = rand(10, 9);
numy = rand(10, 9);
out = struct('numx', [], 'numy', []);
for i = 1:10
for j = 1:9
out(i,j).numx = numx(i,j);
out(i,j).numx = numy(i,j);
end
end
out(5,6).numx
% method 2 - arrayfun
numx = rand(10, 9);
numy = rand(10, 9);
out = arrayfun(@(x, y) struct('numx', x, 'numy', y), numx, numy);
out(5,6).numx
※ 引述《Fugacious (Fugacious)》之铭言:
: 目前有两个变数空间,内各自有9*10的值
: 假设名字为 numx numy
: 想要做一个阵列Newstruct把 numx 跟 numy 存进去
: 本来是想用for一个一个存
: 使得Newstruct(5,6).numx = numx(5,6)
: 但是结果不如预期
: for i = 1:10
: for j = 1:9
: Newstruct.numx(j,i) = numx(j,i);
: end
: end
: 出来之後的 Newstruct 变成一个有numx numy的东西
: 如果输入Newstruct(5,6).numx
: 就会显示超界
: 请问我要怎麽修改程式呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.205.27.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1439461717.A.48C.html
1F:推 Fugacious: @是? 08/13 18:40
inline function
2F:推 Fugacious: 如果只执行 for loop 似乎也work? 08/13 19:01
3F:→ Fugacious: 那後面的 arrayfun 是>? 08/13 19:01
两种方法
※ 编辑: celestialgod (123.205.27.107), 08/13/2015 19:42:32
4F:推 JamesChen: 後面那招很厉害 受教了 08/13 23:13
5F:→ at01076172: 第二招学习了(笔记 08/14 03:17