How to get back the original matrix?

1 visualizzazione (ultimi 30 giorni)
Ammy
Ammy il 25 Mar 2022
Risposto: Torsten il 25 Mar 2022
A=[1 2 3 2;4 1 2 3;3 4 3 2;2 4 1 1];
>> R=[1 3 4 2];
>> B=A(R,:);
>> C=B(:)';
>> D=[1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1];
>> E=C(D==1);
Can we get back A?
  2 Commenti
KSSV
KSSV il 25 Mar 2022
Already you have A...
Ammy
Ammy il 25 Mar 2022
Yes But by the reverse process?

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 25 Mar 2022
A = [1 2 3 2;...
4 1 2 3;...
3 4 3 2;...
2 4 1 1]
R = [1 3 4 2];
B = A(R,:);
Rinv(R) = 1:numel(R);
A_recovered = B(Rinv,:)

Più risposte (1)

Chunru
Chunru il 25 Mar 2022
A=[1 2 3 2;4 1 2 3;3 4 3 2;2 4 1 1];
% Reordering the rows of A is reversible
R=[1 3 4 2];
B=A(R,:);
% Straightening up the matrix into vector is also reversible
C=B(:)';
% Picking up part of the data is not reversible
D=[1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1];
E=C(D==1);
  1 Commento
Ammy
Ammy il 25 Mar 2022
@Chunru thank you
How the following can be
reversible ,
A=[1 2 3 2;4 1 2 3;3 4 3 2;2 4 1 1];
% Reordering the rows of A is reversible
R=[1 3 4 2];
B=A(R,:);

Accedi per commentare.

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by