Character string to numeric vector

Dear all
I am extracting from a file in a for loop information in the following form: ' ( 0.0357 -0.0001 0.0051) ', which is a 1x27 char. I would like to store the three displayed numbers in a the three components of an array so I can use these figures to do mathematical operations. How could I transform them to do so in this case, keeping the minus signs that can appear for different steps of the for loop too?

댓글 수: 1

Stephen23
Stephen23 2024년 9월 20일
@Richard Wood: please upload an unaltered sample data file by clicking the paperclip button.

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

답변 (2개)

Stephen23
Stephen23 2024년 9월 20일
편집: Stephen23 2024년 9월 20일

0 개 추천

txt = ' ( 0.0357 -0.0001 0.0051) '
txt = ' ( 0.0357 -0.0001 0.0051) '
vec = sscanf(txt(3:end),'%f',[1,3])
vec = 1×3
0.0357 -0.0001 0.0051
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
or
vec = sscanf(strtrim(txt),'(%f%f%f',[1,3])
vec = 1×3
0.0357 -0.0001 0.0051
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Sameer
Sameer 2024년 9월 20일

0 개 추천

Hi Richard,
To extract the numbers from the string and store them in an array, you can use the "sscanf" function
Here's how you can do it:
% Example string
str = ' ( 0.0357 -0.0001 0.0051) ';
% Use sscanf to extract the numbers
numbers = sscanf(str, ' ( %f %f %f) ');
disp(numbers);
Please refer to the below MathWorks documentation link:
Hope this helps!

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

2024년 9월 20일

편집:

2024년 9월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by