extract numbers from cells

1 回表示 (過去 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 ExchangeProgramming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by