Storage elements from matrix in other one, with indexing.
1 view (last 30 days)
Show older comments
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 Comments
Accepted Answer
KSSV
on 10 May 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
3 Comments
KSSV
on 10 May 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.
More Answers (1)
Stephen23
on 10 May 2021
The MATLAB approach:
A = [8,3,0,2;9,6,1,4;10,6,2,1;1,6,2,8]
v = [2,4];
out = A(v,v)
2 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!