Borrar filtros
Borrar filtros

Deleting rows and columns of all zeroes in a symbolic matrix

2 visualizaciones (últimos 30 días)
Hello,
How can I delete all rows and columns of all zeroes in a symbolic matrix?
The solution listed here ( http://www.mathworks.com/matlabcentral/answers/40018-delete-zeros-rows-and-columns ) does not work when the matrix is symbolic. The any command produces an error "Unable to prove variable-name literally."
Thanks, Kevin

Respuesta aceptada

Teja Muppirala
Teja Muppirala el 27 de Feb. de 2013
syms x1
data = [ x1, 1, 0 ; 0, 0, 0 ; 0, 1, 0]
data( all( isAlways(data==0) ,2) ,:) = []
data( : ,all( isAlways(data==0) ,1)) = []

Más respuestas (1)

Shashank Prasanna
Shashank Prasanna el 26 de Feb. de 2013
The following worked perfectly fine for me. Can you share the exact error message you got?
x = [1 1 0;0 0 0;0 1 0]
>> data=sym(x)
data =
[ 1, 1, 0]
[ 0, 0, 0]
[ 0, 1, 0]
data( ~any(data,2), : ) = []; %rows
data( :, ~any(data,1) ) = []; %columns
  1 comentario
Kevin Bachovchin
Kevin Bachovchin el 26 de Feb. de 2013
The difference is that your data sym doesn't have any element syms.
Try
syms x1
data = [ x1, 1, 0 ; 0, 0, 0 ; 0, 1, 0]
data( ~any(data,2), : ) = []; %rows
data( :, ~any(data,1) ) = []; %columns
and you will get an error saying "Unable to prove 'x1' literally."

Iniciar sesión para comentar.

Categorías

Más información sobre Numbers and Precision en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by