- Pass the string from the cell array into the regexp using curly braces: str2double(regexp(txt{1,2},'\d+(?=//)','match'))
- Convert the cell element to a string: str2double(regexp(char(txt(1,2)),'\d+(?=//)','match'))
Issue with importing excel files
1 view (last 30 days)
Show older comments
Matthew Brandsema
on 24 Nov 2014
Commented: Matthew Brandsema
on 24 Nov 2014
I posted a question similar to this, but I did not realize what was really going on until recently.
My excel file has multiple rows of the following form.
f 27//1 29//2 5//3 2//4
For this line, it is separated into 5 cells, which I will indicate with | signs.
f | 27//1 | 29//2 | 5//3 | 2//4
When I want to call the cell with 27//1 in it, i put..
txt(1,2)
and it gives me the following.
'27//1'
I need to extract the number to the left of the // sign. The problem is, I believe the single quotation marks from the import are messing things up. When I actually TYPE in 27//1 in the regexp function it works.
str2double(regexp('27//1','\d+(?=//)','match'))
However when I call the cell in the regexp it does NOT. I get NaN
str2double(regexp(txt(1,2),'\d+(?=//)','match'))
How can I circumvent this? I tried to search for a number between a ' and a // sign, but it didn't work.
str2double(regexp(txt(1,2),'(?<=")\d+(?=//)','match'))
0 Comments
Accepted Answer
Geoff Hayes
on 24 Nov 2014
Matthew - the problem isn't with the single quotes in your cell input, but with the str2double. Since you are passing a cell array (with only one string) as your input to regexp, the return value from that will be a cell array. For example,
>> var = {'27//1'};
>> regexp(var,'\d+(?=//)','match')
ans =
{1x1 cell}
If we look closer at ans we see that its value is
>> ans{1}
ans =
'27'
And since this answer is not a string but a cell, then the str2double returns NaN.
There are couple of ways to get around this:
Try out the first method and see what happens!
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!