Filter löschen
Filter löschen

Storage elements from matrix in other one, with indexing.

2 Ansichten (letzte 30 Tage)
Isai Fernandez
Isai Fernandez am 10 Mai 2021
Kommentiert: KSSV am 10 Mai 2021
I want to storage information from one matrix to another. In this example, from A matrix I have to extract to storage in B matrix. The solution should be:
B = [6 4
6 8]
I tried so hard, I don't get it.
Please help me.
A = [
8 3 0 2
9 6 1 4
10 6 2 1
1 6 2 8
];
a=2;
b=4;
B = zeros(2)
m=1
while m<=2
k= 1
while k<=2
i=1
while i<=4
if i==a
n1 = i
if n1<=2
j = 1
while j<=4
if j==b
n2=j
if n2<=2
B(m,k) = B(m,k)+A(n1,n2)
%B(m,k) = B(m,k)+A(n1,n2)
end
end
j = j+1
end
end
end
i = i+1
end
k = k+1
end
m=m+1
end
  2 Kommentare
KSSV
KSSV am 10 Mai 2021
What output you expect?
Isai Fernandez
Isai Fernandez am 10 Mai 2021
B matrix with elements from A with index a and b.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 10 Mai 2021
A = [8 3 0 2
9 6 1 4
10 6 2 1
1 6 2 8
];
a=2;
b=4;
[X,Y] = meshgrid([a b],[a b]) ;
id = sub2ind(size(A),Y,X) ;
B = A(id) ;
B
B = 2×2
6 4 6 8
  3 Kommentare
KSSV
KSSV am 10 Mai 2021
A = [8 3 0 2
9 6 1 4
10 6 2 1
1 6 2 8
];
a=2;
b=4;
[X,Y] = meshgrid([a b],[a b]) ;
[m,n] = size(X) ;
B = zeros(m,n) ;
for i = 1:m
for j = 1:n
B(i,j) = A(Y(i,j),X(i,j)) ;
end
end
Loop will be slower....the solution shown first will be fast.
KSSV
KSSV am 10 Mai 2021
The answer is good.... You use that answer.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Stephen23
Stephen23 am 10 Mai 2021
The MATLAB approach:
A = [8,3,0,2;9,6,1,4;10,6,2,1;1,6,2,8]
A = 4×4
8 3 0 2 9 6 1 4 10 6 2 1 1 6 2 8
v = [2,4];
out = A(v,v)
out = 2×2
6 4 6 8
  2 Kommentare
Isai Fernandez
Isai Fernandez am 10 Mai 2021
Wow, I have to figure out to implement this short code.
KSSV
KSSV am 10 Mai 2021
I missed the common sense....

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by