How to get a subarray from a matrix
230 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi. I am looking to solve this Question: Write a function called top_right that takes two inputs: a matrix N and a scalar non-negative integer n, in that order, where each dimension of N is greater than or equal to n. The function returns the n-by-n square array at the top right corner of N.
So I am looking to take the top right portion of matrix N to get a subarray that is n by n units. I thought the code might look like this:
function M = top_right(N,n)
M = N(end-n+1:end, 1:n);
However, this gives me the bottom left of the matrix and i want the top right.
6 commentaires
Vijay Ramanathan
le 2 Oct 2017
I was trying M= [N(1:n,end-n+1:end)] with M= [N(1:n,end-n:end)] before i saw your answer. I thought it wont apply for all but later it did :) Thanks Karthik and Yasin
Réponses (3)
James Tursa
le 5 Août 2016
Modifié(e) : James Tursa
le 5 Août 2016
Switch your row and column indexing. E.g.
M = N(1:n,end-n+1:end);
0 commentaires
Star Strider
le 5 Août 2016
That’s different than the wording of your earlier Question.
As far as the indexing code, see if this does what you want:
N = randi(99,8,6) % Argument Matrix
[R,C] = size(N);
min_dim = min(R,C);
n = randi(min_dim-1) % Argument Parameter
M = N(1:n, C-n+1:C) % Return Top Right Corner Square Matrix
N =
79 65 20 86 17 8
10 49 4 80 97 52
26 78 74 58 71 10
34 71 50 19 50 81
68 90 48 24 47 81
14 89 90 88 6 72
72 34 61 3 68 15
11 70 62 49 5 66
n =
3
M =
86 17 8
80 97 52
58 71 10
0 commentaires
Aakriti Mittal
le 30 Mai 2018
function N=top_right(M,n) T = M(1:n,1:n); N=T; Try this code...Hopefully it will work.. Aakriti
1 commentaire
Guillaume
le 30 Mai 2018
- please learn to format your answer
- You're answering a two year old question. Hopefylly, the OP is still not waiting for an answer
- Your function returns the top left portion of the matrix, not the top right
- What is the point of
T = ...;
N = T;
? Why not write directly
N = ...;
and not have an intermediate variable that serves zero purpose?
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!