我正处于matlab课程的开始阶段并尝试做一些家庭作业;对于下一个问题,我不明白需要什么。有什么帮助吗?
编写一个名为bottom_left的函数,它接受两个输入:矩阵N和标量n,按顺序,其中N的每个维度大于或等于n。该函数返回N的左下角的n-by-n方阵。
答案 0 :(得分:1)
即使对我来说,这也很简单。
你有一个矩阵:[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
你有一个标量:2
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
“该函数返回N左下角的n-by-n方阵” N = 2 因此 输出是左下角的2 x 2数组:
9 10
13 14
就是这样。附加信息“其中N的每个维度大于或等于n”只是为了混淆了一些事情,因为给出了输入矩阵并且不需要创建。现在,作为一个功课,你可以找到如何为任何给定的矩阵获得这样的数组。
答案 1 :(得分:0)
首先需要做的是测试Matrix N的一个维度(我假设它不是方形矩阵)是否低于标量n。如果两个维度都高于n,那么我们需要简单地将矩阵N的左下块放入变量out中。最后一项操作由Matrix Indexing完成,有关详细信息,请访问此Link
function [ out ] = bottom_left( N, n )
[m,b]=size(N); % m is number of rows, b is number of columns
if (min(m,b)>=n) % to test if one of the dimensions is lower then the scalar n
out=N((m-n+1):m,1:n); % extracting the lower left n-by-n bloc from the Matrix by Indexing
end
end