Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

removing cells that satisfy a specific condtion

1 visualizzazione (ultimi 30 giorni)
Christos
Christos il 15 Gen 2013
Chiuso: MATLAB Answer Bot il 20 Ago 2021
Hello everyone. I have a cell array, from which the cells contain a matrix. I want to remove the cells for which, lets say inv(cell{i}'*cell{i}) gives a warning message that matrix is almost singular. is there a way to do this? I would really appreciate if someone knows how to do this

Risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 15 Gen 2013
Modificato: Azzi Abdelmalek il 15 Gen 2013
for k=1:numel(A) % A is you cell array
try
a=inv(A{k}'*A{k})
out{k}=A{k} % out is the result
catch err
end
end
  5 Commenti
Brian B
Brian B il 15 Gen 2013
You could also use Azzi's code if you force the warning you expect to be handled like an error, as discussed at http://undocumentedmatlab.com/blog/trapping-warnings-efficiently/.
Azzi Abdelmalek
Azzi Abdelmalek il 15 Gen 2013
Modificato: Azzi Abdelmalek il 15 Gen 2013
look at this example
A={[1 2 3 0 0 0; 0 0 0 0 0 0], randi(16,4)}
l=0;
for k=1:numel(A) % A is you cell array
try
a=inv(A{k})
l=l+1
out{l}=A{k} % out is the result
catch err
end
end
out
% the first matrix is not square, can't be reversed, then it will not apear in out array.
% I am not sure if the message "matrix is almost singular" is considered as an error mesage

Questa domanda è chiusa.

Community Treasure Hunt

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

Start Hunting!

Translated by