How to access the minor of a matrix.

If I have an n x n matrix, is there a way to access a smaller part of the matrix (thus yielding a smaller matrix) with arbitrary size? For instance, I have a randomly generated 32x32 matrix and I would like to access the 16x16 block in the lower right. I suppose I could simply access the entries I want but that seems inefficient, particularly as my matrix sizes increase.

3 Commenti

What is the difference between this:
is there a way to access a smaller part of the matrix (thus yielding a smaller matrix) with arbitrary size
and accessing the entries:
I suppose I could simply access the entries I want but that seems inefficient, particularly as my matrix sizes increase.
Jan
Jan il 5 Giu 2013
What exactly seems inefficient?
There isn't a difference. I can construct the minor by accessing the entries. I was wondering if I could simply specify the minor I want and MATLAB could create it.

Accedi per commentare.

 Risposta accettata

Iain
Iain il 5 Giu 2013
big = randn(1000,1000,4);
small = big(n:n+m,o:o+p,q:q+r);
small is an m+1 x p+1 x r+1 matrix, which was taken starting at (n,o,q) of the big one...
It works on whatever number of dimensions you need.

1 Commento

Matt J
Matt J il 5 Giu 2013
Modificato: Matt J il 5 Giu 2013
@Hayashi
This doesn't seem different from "accessing the entries". The expression
small = big(n:n+m,o:o+p,q:q+r);
does access entries from "big".

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by