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 Kommentar

Guillaume
Guillaume am 18 Jul. 2019
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.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Guillaume
Guillaume am 18 Jul. 2019
Bearbeitet: Guillaume am 19 Jul. 2019

1 Stimme

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 Kommentare

KALYAN ACHARJYA
KALYAN ACHARJYA am 19 Jul. 2019
Ok Sir, Thanks
Lui
Lui am 19 Jul. 2019
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
a little typo, it should be:
n = permute(0:5:40, [1, 3, 2]);
netload = Y - n .* Koutput;
Guillaume
Guillaume am 19 Jul. 2019
Thanks, Andrei. Fixed now.
Lui
Lui am 20 Jul. 2019
Thank you so much. This works

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

Lui
am 18 Jul. 2019

Kommentiert:

Lui
am 20 Jul. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by