Why does my cellfun fails?
显示 更早的评论
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 个评论
Kevin Chng
2018-10-12
编辑:Kevin Chng
2018-10-12
sorry, i'm curious how you assign your 'a' variable in MATLAB?
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!