error of All contents of the input cell array must be of the same data type.

44 visualizzazioni (ultimi 30 giorni)
cellArray =
'p4004'
[4005]
[4007]
[4009]
[4015]
cellArray 5x1 1202 cell
% when I perform
cellArray=cell2mat(cellArray)
it gives " All contents of the input cell array must be of the same data type." the error.
%I need to perform these transformations to get cell array of strings
cellArray=cell2mat(cellArray)
cellArray=num2str(cellArray)
cellArray=cellstr(cellArray)

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 16 Feb 2014
Modificato: Azzi Abdelmalek il 16 Feb 2014
'p4004' is a string when the other data are double. you can't use cell2mat with mixed data types
If you need to extract a number from 'p4004'
cellArray ={'p4004' [4005] [4007]}
a=cellfun(@num2str,cellArray,'un',0)
b=regexp(a,'\d+(\.)?\d+','match')
c=cellfun(@str2double,b)

Più risposte (1)

Nikola Mirkov
Nikola Mirkov il 25 Ago 2020
Hey Sermet,
Even easier:
cellArray(cellfun(@ischar,cellArray)) = {nan};
cellArray = cell2mat(cellArray);
Best,
niko

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by