# How extract the value in certain position for a loop in matlab?

조회 수: 7(최근 30일)
DulceEien 2021년 8월 10일
편집: DulceEien 2021년 8월 10일
How can I the output in a vector, when I run it I'm getting a single number
ID =[2003;2201;3350;9123;8234;1234]
for i = 1:length(ID)
y(i) = num2str(ID)
out(i) = str2num(y(2))
end
I need the third position because that value will give me in another conditional the importance of that element
for i = 1:length(ID)
if out(i) == 0
EI(i) = 'Very high';
elseif out(i) == 1
EI(i) = 'High';
elseif out(i) == 2
EI(i) = 'Medium';
elseif out(i) == 3
EI(i)= 'Low';
end
end

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

### 채택된 답변

Dave B 2021년 8월 10일
I think what you're asking is for a vector with the second digit of the values in y?
Here's a fixed version of your code:
ID =[2003;2201;3350;9123;8234;1234];
for i = 1:length(ID)
y = num2str(ID(i));
out(i) = str2num(y(2));
end
disp(out)
0 2 3 1 2 2
Here's a better way:
out=double(extract(string(ID),2))';
disp(out)
0 2 3 1 2 2
##### 댓글 수: 1표시숨기기 없음
DulceEien 2021년 8월 10일

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

### Community Treasure Hunt

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

Start Hunting!