Why does my cellfun fails?
Show older comments
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 Comment
Kevin Chng
on 12 Oct 2018
Edited: Kevin Chng
on 12 Oct 2018
sorry, i'm curious how you assign your 'a' variable in MATLAB?
Accepted Answer
More Answers (0)
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!