How to create a matrix of numbers from workspace variables?

2 次查看(过去 30 天)
I have 70 double variables of size 1500x1(let's call them a1,a2....a70) loaded in workspace. I would like to create a matrix M which contains these variables as columns, so that the matrix size will be 1500x70. Is there an efficient way to do this?
  1 个评论
Aniket Vagha
Aniket Vagha 2016-2-24
编辑:Aniket Vagha 2016-2-24
I used this:
params = who('a*'); % Vars I need start with a.
Matrix = zeros(1500, 70); % 1500 and 70 obtained from array sizes.
for ii = 1:length(Params)
Matrix(:,ii) = eval(Params{ii})
end
Is there a more direct way by-passing eval?

请先登录,再进行评论。

回答(1 个)

Stephen23
Stephen23 2016-2-24
Yes there is an efficient way to do this: don't create 70 numbered variables in your workspace.
How did you "create" them?
If it was by load, then simply call load with an output argument:
S = load(...)
If you created your 70 variables some other way then let us know and we can show you a much better way of programming.
Read my answer to know why accessing 70 variables in a loop is slow, buggy, and obfuscated way to program:

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by