How to create a matrix of numbers from workspace variables?

2 ビュー (過去 30 日間)
Aniket Vagha
Aniket Vagha 2016 年 2 月 24 日
回答済み: Stephen23 2016 年 2 月 24 日
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 Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by