其他分享
首页 > 其他分享> > 看M代码系列(记录一些函数之类的)

看M代码系列(记录一些函数之类的)

作者:互联网

读程序

操作

可以先选中需要注释的行,然后按“ctrl+R”进行注释,

如果要取消多行注释,则在选中的基础上,按“ctrl+T”。

-NARGIN
函数输入参数的数目。
在用户定义函数的函数体中,NARGIN返回用于调用函数的输入参数的数目。如果函数使用参数验证块,那么这个数字中只包含函数调用提供的位置参数。不包括调用方未提供的可选参数。无论是否提供名称-值参数,都不会包括在内。
NARGIN(FUN)返回函数FUN声明的输入数。如果函数的输入参数数目可变,则参数数目为负。如果函数使用参数验证块,NARGIN将函数行上声明的位置参数的数量作为非负值返回。有趣的可以是映射到特定函数的函数句柄,也可以是包含该函数名称的字符向量或字符串标量。
参见NARGOUT, VARARGIN, NARGINCHK, INPUTNAME, MFILENAME。
版权所有1984-2019 MathWorks, Inc。
内置函数。

参考:https://blog.csdn.net/pitaya_lg/article/details/80907680
Matlab语言提供了两个函数nargin和varargin来控制输入变量的个数,以实现不定个数参数输入的操作:

nargin表示输入参数的个数

varargin做为函数定义的参数时,表示这个函数可以传递任意数量的参数

function y = bar(varargin), 调用bar这个函数,可以传递1个或2个或者不给参数

-linsolve 函数
参考:https://blog.csdn.net/u012927285/article/details/49640219Solve a linear system of equations
解决一个线性方程系统
语法
X = linsolve(A,B)
X = linsolve(A,B,opts)

X = linsolve(A,B)求解线性系统A*X = B,当A为方阵时,使用部分主元消元的LU分解,否则使用列枢轴的QR分解。A的列数必须等于B的行数必须有相同的行数。如果A是m × n B是n × k,那么X是m × k。如果a是方阵且处于病态状态,或者a不是方阵且秩不足,linsolve将返回一个警告。

[X, R] = linsolve(A,B)抑制了这些警告并返回R,如果A是方阵,R是A条件数的倒数,如果A不是方阵,R是A的秩。

linsolve(A,B,opts)求解线性系统A*X = B或A’*X = B,使用最合适的解算器,给定矩阵A的性质,这是你在opts中指定的。例如,如果A是上三角形,可以设置选项。UT = true使linsolve使用专为上三角矩阵设计的求解器。如果A在opts中具有这些属性,linsolve比mldivide更快,因为linsolve不执行任何测试来验证A是否具有指定的属性。

注意如果A没有您在opts中指定的属性,linsolve将返回不正确的结果,并且不会返回错误消息。如果您不确定A是否具有指定的属性,则使用mldivide代替。

opts结构的TRANSA字段指定了你想要求解的线性系统的形式:
如果你设置了选项opts.TRANSA = false,linsolve(A,B,opts)求解A*X = B
如果你设置了选项opts.TRANSA = true,linsolve(A,B,opts)求解A’*X = B。

下表列出了opts的所有字段及其对应的矩阵性质。opts的字段值必须是逻辑的,所有字段的默认值为false。
在这里插入图片描述
-MLDIVIDE
Backslash or left matrix divide.
% A\B is the matrix division of A into B, which is roughly the
% same as INV(A)B , except it is computed in a different way.
% If A is an N-by-N matrix and B is a column vector with N
% components, or a matrix with several such columns, then
% X = A\B is the solution to the equation A
X = B. A warning
% message is printed if A is badly scaled or nearly singular.
% A\EYE(SIZE(A)) produces the inverse of A.
% A\B是A除以B的矩阵,与INV(A)B大致相同,只是计算方法不同。如果A是一个N × N矩阵,而B是一个有N个分量的列向量,或者是一个有几个这样的列的矩阵,那么X = A\B是方程AX = B的解,如果A的比例过大或近似为单数,则会打印出警告信息。\EYE(SIZE(A))产生A的倒数。
% If A is an M-by-N matrix with M < or > N and B is a column
% vector with M components, or a matrix with several such columns,
% then X = A\B is the solution in the least squares sense to the
% under- or overdetermined system of equations A*X = B. The
% effective rank, K, of A is determined from the QR decomposition
% with pivoting. A solution X is computed which has at most K
% nonzero components per column. If K < N this will usually not
% be the same solution as PINV(A)B. A\EYE(SIZE(A)) produces a
% generalized inverse of A.
% 如果A是一个M × N矩阵,有M <或者>N和B是一个列向量组件,或一个矩阵等一些列,那么X = a \ B是在最小二乘意义上的解决方案下,或超定方程组A
X = B .有效秩K,确定的QR分解与旋转。解X每列最多有K个非零分量。如果K<N,这通常不是与PINV(A)*B相同的解。A\EYE(SIZE(A))产生A的广义逆。
% C = MLDIVIDE(A,B) is called for the syntax ‘A \ B’ when A or B is an object.
% 当A或B是一个对象时,C = MLDIVIDE(A,B)被语法’A \ B’调用。
% See also LDIVIDE, RDIVIDE, MRDIVIDE.

% Copyright 1984-2008 The MathWorks, Inc.

标签:函数,代码,矩阵,参数,time,之类,linsolve,opts
来源: https://blog.csdn.net/qq_41263383/article/details/115031984