how to convert cell to number in matlab

165 views (last 30 days)
Putri Basenda Tarigan
Putri Basenda Tarigan on 17 Nov 2020
Answered: Rik on 17 Nov 2020
Hello everyone,
I'm beginner in matlab. Could somebody help me on this:
I read my data as cell array from excel, where in one box in excel it contains two numbers, like 3;4
so it's read by matlab as c = {'3;4'}
I tried str2double function, but the result become NaN.
How to overcome this problem?
Thanks in advance.

Answers (1)

Rik
Rik on 17 Nov 2020
str2double returns NaN because '3;4' is not a number, it is two numbers. You need to split the text into different numbers first. One of the many ways to do that is this:
c = '1,,-3.1;+4e2';%modified to cover more representations of numbers
%a number can only contain 0-9, a dot, a minus, a plus, or an E
%remove the * if you don't want multiple delimiters to be merged
split_values = regexp(c,'[^0-9\.\-+eE]*','split');
str2double(split_values)
ans = 1×3
1.0000 -3.1000 400.0000

Tags

Community Treasure Hunt

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

Start Hunting!