Use of cellfun to obtain the 2 element ONLY
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi!
So I have a dataset with all the elements/answers being: 'A1 A2 A3 A4'. I need to transform those elements into '1, 2, 3,4'. Basically I just need to get rid of the 'A'. I have been trying this > Mydata=cellfun(@(x)x(2),Mydata); Im trying to extract the second element only (1,2,3,4) for the whole dataset but I get the followign error:
Index exceeds the number of array elements (0).
Error in @(x)x(2)
The format is 'cell' (not table). I then need to apply a fuction to substract 1 to each element, so 1=0, 2=1, 3=2 and 4=3. If anyone could help me i would really appreciate it! I'm obviously very new to matlab.
Many thanks!
2 comentarios
Respuestas (2)
Bruno Luong
el 28 de Ag. de 2019
Editada: Bruno Luong
el 28 de Ag. de 2019
>> c={'A1' 'A2' 'A3' 'A4' ''}
c =
1×5 cell array
{'A1'} {'A2'} {'A3'} {'A4'} {0×0 char}
This throw an error
Mydata=cellfun(@(x)x(2),c)
Index exceeds the number of array elements (0).
Error in @(x)x(2)
This works but returns -16 for empty cell.
a=char(c);
num=a(:,2)-'0'
num =
1
2
3
4
-16
You can replace with NaN
num(num<0)=NaN
num =
1
2
3
4
NaN
2 comentarios
Ver también
Categorías
Más información sobre Cell Arrays 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!