How to index cell Matrix with a logical matrix?
Mostra commenti meno recenti
Hello all, I tried to index a cell matrix with logical matrix, but it does not return me the correct output.
I want to:
Index: A ={'a','b','c','d'; 'a','b','c','d'; 'a','b','c','d'}
Matrix: B =[1,0,1,0; 0,1,1,0; 0,0,1,1]
Output: C =['a','','c',''; '','b','c',''; '','','c','d'];
I tried 'C=A(logical(B));' but without success.
Could someone help me, please?
Thank you!
2 Commenti
Guillaume
il 26 Nov 2015
Please note that
A =['a','b','c','d'; 'a','b','c','d'; 'a','b','c','d']
is not a cell array. It is a plain matrix of character and is the same as:
A = ['abcd';'abcd';'abcd'];
A cell array is:
A = {'a','b','c','d'; 'a','b','c','d'; 'a','b','c','d'}
Note the use of curly brackets. The distinction is important for your desired output since
C =['a','','c',''; '','b','c',''; '','','c','d'];
is the same as
C = ['ac'; 'bc'; 'cd'];
Diego Makasevicius Barbosa
il 26 Nov 2015
Risposta accettata
Più risposte (1)
Not exactly want you want, but close:
C = A;
C(B ~= 1) = ' '
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!