Using for loops in referencing

Hello everyone
I would like to create new datasets separately through a for loop.
for n=0:5:40
netload'n'=Y-n.*Koutput
end
% the results should give me nine outputs which would be somethig like
netload0=Y-0.*Koutput
netload5=Y-5.*Koutput
"" + ...
""
netload40=Y-40.*Koutput
How can I execute that using a for loop?
Thank you.

1 件のコメント

Guillaume
Guillaume 2019 年 7 月 18 日
You should never create numbered, or sequentially named, variables. Embedding any form of indexing in the variable name is always a bad design. See Tutorial: Why Variables Should Not Be Named Dynamically for more details.

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

 採用された回答

Guillaume
Guillaume 2019 年 7 月 18 日
編集済み: Guillaume 2019 年 7 月 19 日

1 投票

You don't even need a loop to perform your calculation:
n = permute(0:5:40, [1, 3, 2]); %create a vector 0:5:40 in the 3rd dimension
netload = Y - n .* Koutput; %create a 8760 x 42 x numel(n) matrix
netload(:, :, 1) corresponds to n = 0, netload(:, :, 2) corresponds to n = 5, etc.

5 件のコメント

KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 7 月 19 日
Ok Sir, Thanks
Lui
Lui 2019 年 7 月 19 日
Thanks for your response. However for Y and Koutput with size(8760,42) the code returns the error, matrix dimensions must agree. Do I need to predefine the variable netload before using the above lines. Secondly, what does the [3,2,1] represent?
I used cell arrays to solve this problems but it is such a long way to code. Thank you once again
Andrei Bobrov
Andrei Bobrov 2019 年 7 月 19 日
a little typo, it should be:
n = permute(0:5:40, [1, 3, 2]);
netload = Y - n .* Koutput;
Guillaume
Guillaume 2019 年 7 月 19 日
Thanks, Andrei. Fixed now.
Lui
Lui 2019 年 7 月 20 日
Thank you so much. This works

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

その他の回答 (0 件)

カテゴリ

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

製品

質問済み:

Lui
2019 年 7 月 18 日

コメント済み:

Lui
2019 年 7 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by