Selecting multiple array elements

25 vues (au cours des 30 derniers jours)
reincornator
reincornator le 5 Juil 2022
Commenté : reincornator le 5 Juil 2022
Hi.
n = 10;
A = rand(n);
B = A;
k = [1 1; 2 3; 4 5; 1 8; 8 6];
A(k(1,1),k(1,2))= 1;
A(k(2,1),k(2,2))= 1;
A(k(3,1),k(3,2))= 1;
A(k(4,1),k(4,2))= 1;
A(k(5,1),k(5,2))= 1;
B(k(:,1),k(:,2))=1;
isequal(A,B)
ans = logical
0
How can I assign a value of 1 to elements from array B with coordinates k using a single command?

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 5 Juil 2022
Modifié(e) : Fangjun Jiang le 5 Juil 2022
n = 10;
A = zeros(n);
B = A;
k = [1 1; 2 3; 4 5; 1 8; 8 6];
A(k(1,1),k(1,2))= 1;
A(k(2,1),k(2,2))= 1;
A(k(3,1),k(3,2))= 1;
A(k(4,1),k(4,2))= 1;
A(k(5,1),k(5,2))= 1
A = 10×10
1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0
B(sub2ind(size(A),k(:,1),k(:,2)))=1
B = 10×10
1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0
isequal(A,B)
ans = logical
1
  1 commentaire
reincornator
reincornator le 5 Juil 2022
Спасибо.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange

Tags

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by