-2
でこの行列を作成するために、どのように私はベクトルのようなMATLAB
A=[4;3;1;6]
を持っていると私はA
B=[6 5 4 3 2 1;4 3 2 1 0 0;3 2 1 0 0 0;1 0 0 0 0 0];
から以下の要素を持つ行列を作成するにはどうすればできますMATLABでこれを行いますか? Aの最大値に等しい列の数。
でこの行列を作成するために、どのように私はベクトルのようなMATLAB
A=[4;3;1;6]
を持っていると私はA
B=[6 5 4 3 2 1;4 3 2 1 0 0;3 2 1 0 0 0;1 0 0 0 0 0];
から以下の要素を持つ行列を作成するにはどうすればできますMATLABでこれを行いますか? Aの最大値に等しい列の数。
これは、ベクトル化されたものとループ内のものの2つの方法があります。
A=[4;3;1;6];
B = max(bsxfun(@minus, sort(A, 'descend'), 0:(max(A)-1)), 0);
または
S = sort(A, 'descend');
m = numel(A); n = S(1);
C = zeros(m,n);
for k = 1:m
C(k,1:S(k)) = S(k):-1:1;
end
結果:
B =
6 5 4 3 2 1
4 3 2 1 0 0
3 2 1 0 0 0
1 0 0 0 0 0
質問は不明です。 BにはAの要素のインデックスが格納されています(Aには4つの要素しかなく、maltabには0のインデックスがないため)。あなたがAとBの間に行きたいと思っている関係は私には不明です。 –
ループで何が問題になっていますか?ループは非常に便利なものです。この場合、ループはおそらく最も論理的なものです。 – beaker
カラムの数を固定値にするか、Aの最大値にしますか?何か試しましたか?コードはありますか? – beaker