replace not selected value by zero

1 Ansicht (letzte 30 Tage)
HASAN AL-KAF
HASAN AL-KAF am 28 Jan. 2018
Kommentiert: Star Strider am 28 Jan. 2018
Hi I have 10 values. my code select 3 values, for example, if x=[1 2 3 4 5 6 7 8 9 10] and my code select [1 3 5] i want a code to do this x= [1 0 3 0 5 0 0 0 0 0]?.

Akzeptierte Antwort

Star Strider
Star Strider am 28 Jan. 2018
This works:
x=[1 2 3 4 5 6 7 8 9 10];
ToKeep = [1 3 5];
idx = ismember(x, ToKeep);
Result = x .* idx
Result =
1 0 3 0 5 0 0 0 0 0
  2 Kommentare
Image Analyst
Image Analyst am 28 Jan. 2018
Totally different than what I did and that made me see the ambiguity. We need Hasan to clarify if the [1,3,5] are the indexes of x that should be kept (like I assumed), or the values of x that should be kept (like you assumed).
Star Strider
Star Strider am 28 Jan. 2018
‘I have 10 values. my code select 3 values,’
I interpret ‘values’ as indicating array elements.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 28 Jan. 2018
Here's one way:
x=[1 2 3 4 5 6 7 8 9 10]
mask = [1 3 5]
x2 = zeros(1, length(x)); % Initialize x2
x2(mask) = x(mask) % Pull over values in the mask from x and put them in the same column.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by