Filling up a vector
古いコメントを表示
Suppose I have 1 by 2N vector
x=zeros(1,2*N);
Now I have N of 1 by 2 vector
y1=ones(1,2), y2=ones(1,2)
and I want to fill x as
[y1 y2 ...]
what will be a compact way to fill x in this way (instead of concatenation)?
1 件のコメント
Stephen23
2018 年 4 月 2 日
Do NOT do this! The MATLAB documentation specifically advises against what you are trying to do: "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. The preferred method is to store related data in a single array"
Read this to know more:
回答 (1 件)
Walter Roberson
2018 年 3 月 27 日
x(1:2:end) = y1;
x(2:2:end) = y2;
or
x = reshape([y1; y2], 1, []); %requires that y1 and y2 be row vectors
or
x = reshape([y1(:), y2(:)].', 1, []); %does not requires that they be row vectors
3 件のコメント
Walter Roberson
2018 年 3 月 28 日
編集済み: Walter Roberson
2018 年 3 月 28 日
Though I see now that I misinterpreted your question -- I thought you wanted alternating elements, but instead you were looking for dynamic variable names.
alpedhuez
2018 年 3 月 28 日
カテゴリ
ヘルプ センター および File Exchange で Just for fun についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!