I have a data set where some numbers are numbers like (124,456, 987) and others are numbers with an letter on them like (123P,232P) so when i read in [Data,Text] = xlsread(...) half my data set goes to data and the other half to text. The data variable puts NaN where the 124P type data was, how can I extract the number off the P and put it where the NaNs are?

2 件のコメント

per isakson
per isakson 2015 年 6 月 23 日
編集済み: per isakson 2015 年 6 月 23 日
As a start, replace
[Data,Text] = xlsread(...)
by
[~,~,raw] = xlsread(___)
that makes it easier to keep track of the "cell" positions.
Then upload a sample of raw.
If the data is in a text file, it might be a good idea to bypass Excel.
matlabuser12
matlabuser12 2015 年 6 月 23 日
編集済み: matlabuser12 2015 年 6 月 23 日
It is an .xls file unfortunately. This is a snippet from the data column:
115
118
118
121
118
'126P'
132

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

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 23 日
編集済み: Azzi Abdelmalek 2015 年 6 月 23 日

0 投票

s={115;118;118;'121';118;'126P';132}
idx=cellfun(@isstr,s)
b=s(idx)
c=regexp(b,'\d+(\.\d+)?','match')
d=cellfun(@str2double,c,'un',0)
s(idx)=d
Or
s={115;118;118;'121';118;'126P';132}
out=cellfun(@(x) str2double(regexp(num2str(x),'\d+(\.\d+)?','match')),s)

5 件のコメント

matlabuser12
matlabuser12 2015 年 6 月 23 日
This seems to work, but how do i convert teh cells to numbers?
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 23 日
編集済み: Azzi Abdelmalek 2015 年 6 月 23 日
with the second method, they are already double
s={115;118;118;'121';118;'126P';132}
out=cellfun(@(x) str2double(regexp(num2str(x),'\d+(\.\d+)?','match')),s)
matlabuser12
matlabuser12 2015 年 6 月 23 日
I used your first set of code and got rid of the S's. so I have an array s full of cells of numbers that i cannot convert into a regular matrix.
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 23 日
If you use the first code,add
out=str2double(out)
matlabuser12
matlabuser12 2015 年 6 月 23 日
Got it to work with cel2mat following removal of the letter character. thank you

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Characters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by