Borrar filtros
Borrar filtros

Converting cell in double

7 visualizaciones (últimos 30 días)
Max1234
Max1234 el 2 de En. de 2023
Editada: Stephen23 el 3 de En. de 2023
Hey Guys,
i have a 8942x1 cell and want to convert it into a 8942x1 double ? The final product should be look likes this:
[] 0
1 1
[] => 0
[] 0
[] 0
... ...
Thank you very much for your help!
Attached my file:

Respuesta aceptada

Star Strider
Star Strider el 2 de En. de 2023
Editada: Star Strider el 2 de En. de 2023
Try something like this —
LD = load(websave('ids','https://www.mathworks.com/matlabcentral/answers/uploaded_files/1249257/ids.mat'));
ids = LD.ids
ids = 8942×1 cell array
{0×0 double} {[ 1]} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
idsd = cell2mat(ids)
idsd = 966×1
1 1 1 1 1 1 1 1 1 1
idsmt = cellfun(@isempty,ids, 'Unif',0); % Detect Empty Cells
ids(cell2mat(idsmt)) = {0}; % Fill Missing Values With '0'
idsd = cell2mat(ids)
idsd = 8942×1
0 1 0 0 0 0 0 0 0 0
EDIT — Corrected typographical errors.
.
  2 comentarios
Max1234
Max1234 el 2 de En. de 2023
Perfect!! Thank you!
Star Strider
Star Strider el 2 de En. de 2023
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (1)

Stephen23
Stephen23 el 2 de En. de 2023
Editada: Stephen23 el 3 de En. de 2023
Simpler and more efficient:
S = load('ids.mat');
ids = S.ids
ids = 8942×1 cell array
{0×0 double} {[ 1]} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
Method one: robust indexing:
X = cellfun(@isscalar,ids);
V = zeros(size(ids));
V(X) = [ids{X}]
V = 8942×1
0 1 0 0 0 0 0 0 0 0
Method two: VERTCAT():
ids(~cellfun(@isscalar,ids)) = {0};
V = vertcat(ids{:})
V = 8942×1
0 1 0 0 0 0 0 0 0 0

Categorías

Más información sobre Data Types en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by