put the result in one matrix
2 ビュー (過去 30 日間)
古いコメントを表示
Hi,I have ,w=[2 4 4 1 1].
for i=1:length(w)
x=find(w==w(i))
end
this code gives this result:x=[1]',x=[2 3]',x=[4 5]',x=[4 5]',in each iteration.
I want the result to be x=1 0 0 0
2 3 0 0
4 5 0 0
4 5 0 0
0 件のコメント
採用された回答
Star Strider
2014 年 4 月 13 日
Actually, your code does not give the result you post when I run it. The second row, [2 3 0 0] is repeated (as it should be) in the third.
I suggest:
w=[2 4 4 1 1];
x = zeros(4,4);
for i=1:length(w)
wi = find(w==w(i))
x(i,1:length(wi))=wi;
end
that produces:
x =
1 0 0 0
2 3 0 0
2 3 0 0
4 5 0 0
4 5 0 0
4 件のコメント
Star Strider
2014 年 4 月 14 日
LeHuy — The ‘1:length(wi)’ statement creates a vector starting at 1 with spacing of 1 to whatever the length of wi is for that loop. If wi=3, the vector is [1 2 3]. Please see the documentation on the colon ‘:’ operator for more details.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!