Azzera filtri
Azzera filtri

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

2 visualizzazioni (ultimi 30 giorni)
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]

Risposta accettata

Voss
Voss il 2 Gen 2023
Modificato: Voss il 2 Gen 2023
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

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by