make matrix from arrays with for loop
1 次查看(过去 30 天)
显示 更早的评论
Hello, I have the following problem:
array_1 = [1 2 3];
array_2 = [4 5 6];
array_3 = [7 8 9];
array_i = [.....];
I want to use a for loop to create one matrix looking like:
matrix =
1 2 3
4 5 6
7 8 9
.....
How can I realize that? Thanks, J.
3 个评论
Stephen23
2017-6-23
编辑:Stephen23
2017-6-23
The most important question is: how did you get those arrays into your workspace? The best solution is to avoid creating such arrays... and luckily it is trivial to avoid when loading/importing data or when creating data. So, given that it is so trivial to avoid this problem, when not improve your code by avoiding this whole problem altogether?
About the worst solution would be to use eval (which some beginners love to use), you might like to first know what the MATLAB documentation says about it: "A frequent use of the eval function is to create sets of variables such as A1, A2, ..., An, but this approach does not use the array processing power of MATLAB and is not recommended."
You might also like to read what experienced MATLAB users say about what you are trying to do (hint: they strongly advise against it):
A much better solution is to load your data into one variable, and then simply access the data using indexing and/or fieldnames, e.g. if you use load then always load into an output variable. This will more efficient, neater, more robust, easier to check, easier to debug, faster,...
采纳的回答
KSSV
2017-6-23
%%create arrays
array_1 = [1 2 3];
array_2 = [4 5 6];
array_3 = [7 8 9];
array_4 = [1 2 3];
array_5 = [4 5 6];
array_6 = [7 8 9];
save myfile.mat ;
clearvars
S = load('myfile.mat') ;
names = fields(S) ;
iwant = zeros(length(names),3) ;
for i = 1:length(names)
iwant(i,:) = getfield(S,names{i}) ;
end
5 个评论
KSSV
2017-6-23
Jonas, you have to follow the Stephen comments. What he said is exactly true. This practise is not good idea.
更多回答(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!