How to alter entries in one matrix based on another matrix?

4 ビュー (過去 30 日間)
ASHA PON
ASHA PON 2023 年 1 月 2 日
コメント済み: ASHA PON 2023 年 1 月 2 日
I am having two matrix of size 7*7 and 7*1. Now, i need to compare these two matrix and alter entries in one matrix based on second matrix. Also, during computation, i need to consider first column of matrix A and first row of matrix B as last column and row. The computation has to begin from second column of matrix A and second row of matrix B and ends with first column of matrix A and first row of matrix B. For example, second row second column of matrix A has element 1 and second row of matrix B has element 1, so expected output at matrix C is element 1 in second row of first column. Similarly, sixth row of third column in matrix A is 1 and element 0 is present in third row of matrix B, hence expected output at matrix C is element 0 in sixth row of second column and remaining terms are 0. Element 1 is present in fourth row of first column in matrix A and element 1 is present in first row of matrix B and hence, expected output at matric C is element 1 has to be present in fourth row of seventh column. Thank you in advance.
Example:
A=[0 0 0 1 0 0 0
0 1 0 0 0 0 0
0 0 0 0 1 0 0
1 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 1 0 0 0 0
0 0 0 0 0 0 1]
B=[1; 1; 0; 0; 1; 0; 1]
Expected output:
C=[0 0 0 0 0 0 0
1 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 0 0 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 1 0]

採用された回答

Voss
Voss 2023 年 1 月 2 日
編集済み: Voss 2023 年 1 月 2 日
One way:
A=[0 0 0 1 0 0 0
0 1 0 0 0 0 0
0 0 0 0 1 0 0
1 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 1 0 0 0 0
0 0 0 0 0 0 1];
B=[1; 1; 0; 0; 1; 0; 1];
C = zeros(size(A));
idx = logical(B);
C(:,idx) = A(:,idx);
C = C(:,[2:end 1])
C = 7×7
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
  1 件のコメント
ASHA PON
ASHA PON 2023 年 1 月 2 日
Thank you for the reply. This is what i needed.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by