How to replace the empty cells in a cell array by a 4-bits string?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sarah A
am 18 Jan. 2020
Kommentiert: Walter Roberson
am 28 Nov. 2024
Hello,
How to replace the empty cells " [ ] " in the attached matrix to a 4-bits string we can convert the whole array matrix to double.
For example,
if we have thw following row:
[ '0001', '0101' , '1010', [ ], [ ], [ ], '1111']
it becomes:
[0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]
0 Kommentare
Akzeptierte Antwort
Akira Agata
am 19 Jan. 2020
How about the following?
load('Key.mat');
idx = cellfun(@isempty,Key); % Find the indexes of empty cell
Key(idx) = {'0000'}; % Replace the empty cells with '0000'
3 Kommentare
Thomas Carpenter
am 28 Nov. 2024
Bearbeitet: Thomas Carpenter
am 28 Nov. 2024
Using the optimised 'length' operation for cellfun - i.e ~cellfun('length',Key) - is generally more efficient than calling @isempty.
Walter Roberson
am 28 Nov. 2024
Timing test:
Key = num2cell(rand(100,100));
whos Key
Key(randi(100*100,50,1)) = {[]};
t1 = timeit(@() cellfun(@isempty,Key), 1)
t2 = timeit(@() ~cellfun('length',Key), 1)
So the 'length' version is indeed faster.
Siehe auch
Kategorien
Mehr zu Cell Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!