Run a script file "i" times and save output variable to a 3D array
2 ビュー (過去 30 日間)
古いコメントを表示
I have a script file "myscript.m" where each time the script file is executed I obtain a 1001x2 output variable "output".
I would like to execute this script "i" times in a loop, and save the output variable as an array (output,i) = (1001,2,i)
I've tried the following code in a new script file and am able to obtain a (1001,2,i) array, however, only the first column of my array is populated with the correct values from "output", the second column is zeros, which should not be the case.
result = zeros(1001,2,5); %preallocate array
for i = 1:5
run('myscript'); % where "output" = 1001x2, is computed
result(:,:,i)=[output(:,1),output(:,2)];
end
I know I've missed something trivial here.
1 件のコメント
DGM
2021 年 4 月 13 日
編集済み: DGM
2021 年 4 月 13 日
Is there any reason why you're not using a function to do this? Just looking at this, there's no clear way to determine what's going on. I have a feeling that the entire problem is being caused by trying to run a script as a function and causing conflicts with variables left over from prior runs ... or something similar.
採用された回答
Gargi Patil
2021 年 4 月 16 日
The code provided by you should correctly assign the values to result. You can also simplify it by using the following code in the for loop:
result(:,:,i)=output;
The undesired assignment could be occurring due to incorrect assignment of values to output. Ensure that run() is computing output correctly.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!