在数组matlab中保存for循环中的数据

时间:2014-03-26 14:44:06

标签: arrays matlab

我试图计算一个数组,但我的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

2 个答案:

答案 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"每次循环。 请注意,如果循环迭代的数量非常大,这不一定是一个好习惯,但是你远远超出了这个限制。