Error assigning variable in loop

It is beyond me why I cannot figure this out. The debugger points to the line 'wsstd(i,1) = fricvelo.*4;' but I think it has to do with my if statement as even when the condition is failed, a calculation is still done. L(1,1) for instance is -0.393. I am sure my tired eyes just can't find the simple problem.
wsstd = zeros(length(ws),1);
for i = 1:11950;
if L(i,1) >= -500 && L(i,1) <= -50
wsstd(i,1) = fricvelo.*4;
else
wsstd(i,1) = 0;
end
end

2 件のコメント

Rick Rosson
Rick Rosson 2014 年 11 月 13 日
編集済み: Rick Rosson 2014 年 11 月 13 日
  1. Please post the exact and complete error message.
  2. What is the result of typing size(fricvelo) at the command prompt?
mashtine
mashtine 2014 年 11 月 13 日
Hi Rick,
Here is the message:
Subscripted assignment dimension mismatch.
Error in ERA_Suomi_parametrization (line 43)
wsstd(i,1) =
43 wsstd(i,1) = fricvelo.*4
size(fricvelo) is (39928,1) where the #rows is the same as the length(ws)

サインインしてコメントする。

 採用された回答

Orion
Orion 2014 年 11 月 13 日

0 投票

You're trying to insert a 39928x1 vector in only one element of wsstd.
size(wsstd(i,1)) == 1 for any i.
So you have a dimension problem.
you can only put a scalar in wsstd(i,1).
You need to change something (like fricvelo(i) ?...)

1 件のコメント

mashtine
mashtine 2014 年 11 月 13 日
Wow! How did I not see such an obvious answer! Sorry for waste of time Orion. Thanks

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSimulink についてさらに検索

質問済み:

2014 年 11 月 13 日

コメント済み:

2014 年 11 月 13 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by