Change variable name based on what loop it is on
18 ビュー (過去 30 日間)
古いコメントを表示
I have a user input a vector for the variable titled 'k1'. A loop is set up where the input conditions are the same, but the variable name must be changed in order to perform some operations and store the data. I would like it to change based on which loop it is performing, like k1 might be given the name k2 on the second loop. I don't know how I could do this simply or if doing this is possible.
1 件のコメント
採用された回答
KALYAN ACHARJYA
2025 年 4 月 14 日
Optimized Memory Usage Strategy:
To efficiently utilize memory based on the type of output variable k, consider the following approach:
- If k is a scalar output (single numeric value per iteration):Preallocate a numeric array to improve performance and memory usage.
k = zeros(array_size1, array_size2); % Preallocate for scalar values
for i = 1:array_size
k(i) = ... ; % Assign scalar result
end
2. If k stores vectors or non-scalar data types (e.g., strings, structures, or arrays):
Use a cell array to accommodate varying data sizes/types.
k = cell(Cellarray_size1, Cellarray_size2); % Preallocate cell array
for i = 1:array_size
k{i} = ... ; % Assign vector or other complex result
end
0 件のコメント
その他の回答 (2 件)
Walter Roberson
2025 年 4 月 14 日
編集済み: Walter Roberson
2025 年 4 月 14 日
It is possible to do this.
It is not possible to do this simply.
We firmly recommend that you do not do this.
0 件のコメント
dpb
2025 年 4 月 14 日
While it can be done, it almost never should be the way..."there be dragons!" and slow, obfuscated and very difficult to debug code. See <Do not use globals or eval>. The direct link is to @Matt Fig's answer, but the overall discussion/thread is informative and valuable. The offcial Mathworks documentation link <Alternaives to the eval Function> discusses exactly the thing you mention as its first use case...
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!