i need to convert below batrix to another matrix

2 Ansichten (letzte 30 Tage)
Nitin Sapre
Nitin Sapre am 8 Nov. 2019
Kommentiert: Walter Roberson am 8 Nov. 2019
b=[308 -1 2 3 -1 2 -1;
-1 -1 2 1 0 1 0;
1 2 -1 -1 -1 -1 2;
0 0 1 -1 -1 2 -1];
to
b=[308 2 3 2 ;
2 1 0 1 0;
1 2 2;
0 0 1 2 ]
fill all ending elements with 0
b=[308 2 3 2 0 ;
2 1 0 1 0;
1 2 2 0 0;
0 0 1 2 0]
thanks
  1 Kommentar
Walter Roberson
Walter Roberson am 8 Nov. 2019
Is it correct that the rule is that each row should have all negative values removed, and then all rows should be padded out with 0 to the length of the longest remaining row ?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 8 Nov. 2019
b=[308 -1 2 3 -1 2 -1;
-1 -1 2 1 0 1 0;
1 2 -1 -1 -1 -1 2;
0 0 1 -1 -1 2 -1];
% Get positive count from each row
N = sum(b>0,2) ;
iwant = zeros(size(b,1),max(N)) ;
for i = 1:size(b,1)
bi = b(i,:) ;
iwant(i,1:N(i)) = bi(bi>0) ;
for
  1 Kommentar
Walter Roberson
Walter Roberson am 8 Nov. 2019
Should be b>=0 as row 2 shows an example of a 0 being preserved.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Nitin Sapre
Nitin Sapre am 8 Nov. 2019
Yes sir that's what I need

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by