Why does my cellfun fails?
Mostrar comentarios más antiguos
Hello
I have the following cell where I would like to replace all 1 by 'true' and all 0 by 'failed'
a= [ 0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
[ 1] [0] [0] [0] [0] [0] [0] [0] [0] [0] [ 0] [ 0]
[ 2] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 3] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 4] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 5] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 6] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 7] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 8] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[ 9] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[10] [1] [1] [1] [0] [0] [1] [0] [0] [0] [ 0] [ 0]
[11] [1] [1] [1] [0] [0] [1] [0] [1] [0] [ 0] [ 0]
If I apply the command
a(cellfun(@(elem) elem == 0,a)) = {'false'}
I get s
a= [ false] [1] [2] [3] [4] [5] [6] [7] [8] [9] [1false] [11]
[ 1] [false] [false] [false] [false] [false] [false] [false] [false] [false] [ false] [ false]
....
The output expected, however if I try to apply the same command again as
a(cellfun(@(elem) elem == 1,a)) = {'true'}
it fails and matlab says
Error using cellfun
Non-scalar in Uniform output, at index 2, output 1.
Set 'UniformOutput' to false.
Which I don't understand, further if I set the value as indicated I get
a(cellfun(@(elem) elem == 1,a,'UniformOutput',false)) = {'true'}
Function 'subsindex' is not defined for values of class 'cell'.
How can I change the 1 to 'true'?
Thanks in advance
1 comentario
Kevin Chng
el 12 de Oct. de 2018
Editada: Kevin Chng
el 12 de Oct. de 2018
sorry, i'm curious how you assign your 'a' variable in MATLAB?
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Structures en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!