conatinate matrix which is getting updated in loop
古いコメントを表示
hi,
for s=1:500
consall1(s,:,:)=[cons1, cons2, cons31, cons32, cons33, cons34];
end
from above mentioned for loop.I need a single matrix with 6 rows.please reply with your ideas.
sita
4 件のコメント
Adam
2015 年 3 月 17 日
Why are you putting the same result into 500 different layers of your consall1 result? There are quicker ways to achieve that than in a loop if it is what you really wish to do.
What do you mean by a single matrix with 6 rows? A 2d matrix? We have no idea what cons1, cons2, etc are in your example. Are they scalars? matrices?
@sita: Your statements and the code given contradict each other:
for s = 1:500
consall1(s,:,:) = ...
end
will create an array with 500 rows. But you also state that "I need a single matrix with 6 rows". So which do you want: 500 or 6 rows?
Also the allocation
consall1(s,:,:) = [cons1, cons2, cons31, cons32, cons33, cons34];
will fit the given values into one row of consall1 based on the indexing used, regardless of their orientation in a vector, so reshaping the vector will not change the shape of the output array.
You need to explain the problem better, with an example of the desired output.
sita
2015 年 3 月 18 日
Michael Haderlein
2015 年 3 月 18 日
So besides the needless introduction of a third dimension, what is wrong with your code fragment? I assume that you cannot vectorize the calculation of cons1,...34. To speed up a bit (though it won't make a big difference here), you can preallocate consall1 with
consall1=zeros(500,6);
and then start overwriting the zeros with the values in the loop.
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Valentines Day についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!