How to get back the original matrix?

1 回表示 (過去 30 日間)
Ammy
Ammy 2022 年 3 月 25 日
回答済み: Torsten 2022 年 3 月 25 日
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 件のコメント
KSSV
KSSV 2022 年 3 月 25 日
Already you have A...
Ammy
Ammy 2022 年 3 月 25 日
Yes But by the reverse process?

サインインしてコメントする。

採用された回答

Torsten
Torsten 2022 年 3 月 25 日
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,:)

その他の回答 (1 件)

Chunru
Chunru 2022 年 3 月 25 日
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 件のコメント
Ammy
Ammy 2022 年 3 月 25 日
@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,:);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by