MATLAB Answers

Convert String to Numerical Matrix

2 ビュー (過去 30 日間)
Samuel Lee
Samuel Lee 2020 年 10 月 10 日
コメント済み: Samuel Lee 2020 年 10 月 10 日
Hi there,
Just wondering how to convert some matrix string (such as A = '[1,2,3,4,5]') into a numerical matrix (like [1,2,3,4,5]) so that it displays when entered into matlab like,
ans =
1 2 3 4 5
instead of
Columns 1 through 5
1.0000 2.0000 3.0000 4.0000 5.0000
Cheers,
Samuel

採用された回答

madhan ravi
madhan ravi 2020 年 10 月 10 日
編集済み: madhan ravi 2020 年 10 月 10 日
Normally str2num() is not suggested:
Wanted = sscanf(A(2:end-1), '%d').' % edited after sir Walter’s comment to exclude []

  5 件のコメント

表示 2 件の古いコメント
Samuel Lee
Samuel Lee 2020 年 10 月 10 日
Thank you Madhan and Walter, this is cool. How do you adapt the code if there were no commas seperating the values? E.g. A = '[1 0.2 0.4 0.5 0.6]'
Cheers
Walter Roberson
Walter Roberson 2020 年 10 月 10 日
A = '[1 0.2 0.4 0.5 0.6]'; sscanf(A(2:end-1), '%f')
ans = 5×1
1.0000 0.2000 0.4000 0.5000 0.6000
If the problem is that you might have commas or might not then:
A = '[1 0.2, 0.4, 0.5 0.6]'; sscanf(A(2:end-1), '%f%*[, ]')
ans = 5×1
1.0000 0.2000 0.4000 0.5000 0.6000
Samuel Lee
Samuel Lee 2020 年 10 月 10 日
Cheers Walter, this is awesome. I couldn't quite work it out from the page (https://au.mathworks.com/help/matlab/ref/sscanf.html).
Thank you!

サインインしてコメントする。

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 10 月 10 日
編集済み: Ameer Hamza 2020 年 10 月 10 日
A = '[1,2,3,4,5]';
A = str2num(A);
Result
>> A
A =
1 2 3 4 5
Another alternative which is generally not recommended, but can be useful here
A = '[1,2,3,4,5]';
A = eval(A);

  0 件のコメント

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by