Why does my cellfun fails?
Afficher commentaires plus anciens
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 commentaire
Kevin Chng
le 12 Oct 2018
Modifié(e) : Kevin Chng
le 12 Oct 2018
sorry, i'm curious how you assign your 'a' variable in MATLAB?
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Structures dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!