Matrix split in vector

Hello everyone! I need a little help, I'm at the beginning and I would like to create a function that receives a matrix with positive elements (0 included) and returns in a vector line by line the elements of the matrix without zeros. A little help, please?
ex: A = [1 2 0 3; 0 0 4 5; 6 0 7 8]
newA= [1, 2, 3, 4, 5, 6, 7, 8]

 Risposta accettata

Stephen23
Stephen23 il 7 Apr 2020
Modificato: Stephen23 il 7 Apr 2020
>> B = nonzeros(A.')
B =
1
2
3
4
5
6
7
8

2 Commenti

steve Brian
steve Brian il 7 Apr 2020
Modificato: steve Brian il 7 Apr 2020
and if i want B to be in row?
I have something like this:
function [values] = ceva(A)
B = A(A>0)
values = B';
endfunction
when i insert A, only display B = columne
edit: i fix it
"and if i want B to be in row?"
nonzeros(A.').'

Accedi per commentare.

Più risposte (1)

KSSV
KSSV il 7 Apr 2020
Modificato: KSSV il 7 Apr 2020
iwant = A(A>0)
If you want in the order you have given.
A = A' ;
iwant = A(A>0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by