我试图计算一个数组,但我的for循环分别生成数字然后保存最后一个输出,因为矢量可以请你帮忙吗?我的代码是:
for k= 0:0.1:3
muk = [nanmean(abs(normGsf).^(k))]
end
我看到的输出是
muk =
1
muk =
0.9169
muk =
0.8520
muk =
0.8011
muk =
0.7616
muk =
0.7314
muk =
0.7089
muk =
0.6932
muk =
0.6836
muk =
0.6794
muk =
0.6805
muk =
0.6866
muk =
0.6976
muk =
0.7138
muk =
0.7351
muk =
0.7621
muk =
0.7950
muk =
0.8345
muk =
0.8812
muk =
0.9359
muk =
0.9996
muk =
1.0736
muk =
1.1592
muk =
1.2582
muk =
1.3724
muk =
1.5043
muk =
1.6567
muk =
1.8327
muk =
2.0362
muk =
2.2719
muk =
2.5450
答案 0 :(得分:1)
为什么不进行矢量化?
k = 0:0.1:3;
muk = nanmean(abs(normGsf)).^k;
我假设nanmean(abs(normGsf))
是标量,如您的示例所示。然后,结果muk
是一个与k
大小相同的向量。
答案 1 :(得分:0)
你可以这样做:
muk = [];
for k= 0:0.1:3
muk = [muk; nanmean(abs(normGsf).^(k))]
end
这会将新值附加到" muk"每次循环。 请注意,如果循环迭代的数量非常大,这不一定是一个好习惯,但是你远远超出了这个限制。