ベクトルがある場合、別のベクトルに関連付けられたL = [10; 10; 10; 11; 11; 13; 13]と言うことができます。 34; 21; 73; 14]と私は、Xのほとんどすべての要素を持つが、Lの要素(i、j)が変化するときXの0を置き換えるだけで、第3のベクトルZを作成したい。私が望む結果がZ = [1; 6; 65; 0; 21; 0; 14]ベクトルからいくつかの要素を置き換えるMATLAB
どのように解決するか考えてみましょう。
私は本当に感謝するでしょう:)
ベクトルがある場合、別のベクトルに関連付けられたL = [10; 10; 10; 11; 11; 13; 13]と言うことができます。 34; 21; 73; 14]と私は、Xのほとんどすべての要素を持つが、Lの要素(i、j)が変化するときXの0を置き換えるだけで、第3のベクトルZを作成したい。私が望む結果がZ = [1; 6; 65; 0; 21; 0; 14]ベクトルからいくつかの要素を置き換えるMATLAB
どのように解決するか考えてみましょう。
私は本当に感謝するでしょう:)
簡単だこと:
X = [1;6;65;34;21;73;14];
L = [10;10;10;11;11;13;13];
Z = X;
ind = [false; diff(L)~=0]; %// logical index of values to be set to 0
Z(ind) = 0;
これは、変更が発生しました要素のlogical indexind = [false; diff(L)~=0]
を計算することによって動作します。最初の要素に比較する前の要素がないため、最初にfalse
が必要です。論理インデックスは、Z
のどの値を0
に設定するかを選択するために使用されます。
これは完璧だった
Z = zeros(length(L))
for i = 2:length(L)
if(L(i-1) == L(i)
Z(i) = X(i);
else
Z(i) = 0;
end
end
、おかげでルイスを動作するはずです! – angelavtc