extract numbers from cells

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 日

0 投票

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 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeNumerical Integration and Differential Equations についてさらに検索

質問済み:

2021 年 6 月 11 日

コメント済み:

2021 年 6 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by