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]?.

 채택된 답변

Star Strider
Star Strider 2018년 1월 28일

1 개 추천

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

Image Analyst
Image Analyst 2018년 1월 28일
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 2018년 1월 28일
‘I have 10 values. my code select 3 values,’
I interpret ‘values’ as indicating array elements.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2018년 1월 28일

1 개 추천

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.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2018년 1월 28일

댓글:

2018년 1월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by