How to replace string by double in cell array

조회 수: 1 (최근 30일)
Gregory Wurtz
Gregory Wurtz 2020년 5월 19일
댓글: Gregory Wurtz 2020년 5월 20일
I am importing an Excel file in Matlab using the readtable command. For some reason, one collumn in the dataset does not load as doubles (all number columns are identically formatted in the Excel file as much as I can tell) but as string characters:
prompting the deficient column:
>>T{3,1}{:,14}
ans =1699×1 cell array
I need to replace the strings in T{3,1}{:,14} with doubles.
The following command returns an error:
>> T{3,1}{:,14}=str2double(T{3,1}{:,14})
Conversion to cell from double is not possible.
If is use:
T{3,1}{:,14}=num2cell(str2double(T{3,1}{:,14}))
the content of the column is no longer a double.
Do you have a solution to this (seemingly trivial) problem?
Thanks
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 5월 19일
Would it be possible for you to upload the file for testing?
Gregory Wurtz
Gregory Wurtz 2020년 5월 19일
Here is the file with some example columns. The deficient data is in column cc.

댓글을 달려면 로그인하십시오.

채택된 답변

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2020년 5월 19일
D1D=readtable('test.xlsx');
D1D.cc=str2double(D1D.cc);
  댓글 수: 2
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2020년 5월 19일
if you need to remove NaN's, use:
Index=isnan(D1D.cc);
D1D.cc(Index)=0;
% similarly for other columns ...
Gregory Wurtz
Gregory Wurtz 2020년 5월 19일
Thank you. This works great!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2020년 5월 19일
use a command: double()
To get back your strings use the command: char()
  댓글 수: 1
Gregory Wurtz
Gregory Wurtz 2020년 5월 19일
I am not sure how this solves my problem: I would like to replace the string in the cell array with doubles. I included the data in the feed above.
Thanks for your help.

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2020년 5월 19일
filename = 'test.xlsx';
opt = detectImportOptions(filename);
opt = setvaropts(opt, 3, 'Type', 'double');
T = readtable(filename, opt);
  댓글 수: 5
Walter Roberson
Walter Roberson 2020년 5월 19일
I tested on your sample file before posting. This code fixes the readtable so that it loads as numeric in the first place avoiding the cell
Gregory Wurtz
Gregory Wurtz 2020년 5월 20일
Thanks Walter.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by