extract numbers from cells

8 ビュー (過去 30 日間)
alessio tugnolo
alessio tugnolo 2021 年 6 月 11 日
コメント済み: alessio tugnolo 2021 年 6 月 11 日
I have a cell array with n rows wich contains:
'Gain=2M'
'Gain=500k'
'Gain=20M'
....
I would extract only the number which is contained in each cell. How can I do that?
  1 件のコメント
KSSV
KSSV 2021 年 6 月 11 日
Read about regexp

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

回答 (2 件)

Chunru
Chunru 2021 年 6 月 11 日
s={'Gain=2M'
'Gain=500k'
'Gain=20M'};
n = length(s);
g = zeros(n, 1);
for i=1:n
tmp = strrep(s{i}, 'Gain=', '');
g(i) = str2num(tmp(1:end-1));
switch tmp(end)
case 'M'
g(i)=g(i)*1e6;
case 'k'
g(i)=g(i)*1e3;
end
end
g
g = 3×1
2000000 500000 20000000
  1 件のコメント
alessio tugnolo
alessio tugnolo 2021 年 6 月 11 日
Great! It works beautifully!
Thanks

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


Stephen23
Stephen23 2021 年 6 月 11 日
Simply download my FEX submission SIP2NUM:
and use it like this:
C = {'Gain=2M';'Gain=500k';'Gain=20M'};
V = cellfun(@sip2num,C)
V = 3×1
2000000 500000 20000000
  1 件のコメント
alessio tugnolo
alessio tugnolo 2021 年 6 月 11 日
Thank you !

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

カテゴリ

Help Center および File ExchangeNumerical Integration and Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by