How to determine Empty matrix: 0-by-1 in a cell??

I have a cell of size 24x1. It is of the form k1 =
[ 13]
[ 13]
[ 13]
[ 13]
[ 13]
[ 13]
[ 0]
[ 12]
[ 12]
[0x1 double]
[ 12]
[ 12]
[ 12]
[ 11]
[ 11]
[ 11]
[ 11]
[ 11]
[ 11]
[ 9]
[0x1 double]
[ 10]
[ 10]
[ 10]
I want to detect the Empty Matrix: 0-by-1 cells in k1. For example, at k1(10), the value is [0x1 double]. I want to convert k1 into matrix and replace these empty matrices([0x1 double]) with zero. How can i do this?

 Accepted Answer

José-Luis
José-Luis on 23 May 2013
Edited: José-Luis on 23 May 2013
bla = {1:3,[],4}
your_logical_result = cellfun(@(x) isempty(x),bla)
bla(your_logical_result) = {0}

4 Comments

Thank you. Its working
Anonymous functions inside cellfun are slower than function handles. When cellfun has a corresponding built-in command (unfortunately they appear as "backward compatibility" in the docs only), they are massively faster:
cellfun(@isempty, bla); % faster
cellfun('isempty', bla); % fastest
Thanks, good to know. Not very intuitive if you ask me.
Thanks for the info

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Asked:

on 23 May 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!