matlab的m函数入门1

文章目录

        • 1. 概述
        • 2. 代码及其解析
        • 3. 命令行窗口的尝试

1. 概述

  • 参看别人的文章和代码,对每一句代码进行分析,从而达到 matlab的 m函数入门,针对 matlab 的 m 函数小白。(注意 m函数名称和m文件一致 参见 matlab知识积累,同时需要知道希尔伯特矩阵)

2. 代码及其解析

function A = myhilb(n,m)
% This is help document.
% 自定义函数 myhilb,有两个参数 n m
% nargin 和 nargout 是两个获取函数参数数目的
%matlab函数,可以直接用 nargout/nargin来表示
%输出和输入的参数数目

% 针对错误调用格式: [A B] = myhilb(n,m)
if nargout > 1   % 如果输出参数的数目 > 1,输出错误信息
	error('Too many output arguments.');
end  % if...end 


if nargin == 1  % 如果输入参数的个数为 1,将 n 的值赋给 m
	m=n;
% 输入参数个数为 0 或者 输入参数个数大于 2
%输出错误信息,另外注意一下 | 与 || 的区别
% 针对错误调用格式: A = myhilb(n,m,j,k,...) 或者 myhilb()
elseif (nargin == 0) || (nargin > 2)
	error('Wrong number of input arguments.');
end  % if...end 

A1 = zeros(n,m); % A1 矩阵赋值为 n 行 m 列的0矩阵(初始化)
for  i = 1:n     % i 从 1 每次加 1 ,直至 n
   for j = 1:m   % j 从 1 每次加 1 ,直至 m
      A1(i,j) = 1 / (i+j-1); % 希尔伯特矩阵
   end  % 内层循环结束
end     % 外层循环结束

if nargout == 1      % 如果输出参数个数为 1
     % 那么 A1 赋值给 A 后显示 A,调用格式 X = myhiilb(n,m)
	A = A1;         
elseif nargout == 0  % 如果输出参数个数为 0
    % 直接显示 A1,调用格式 myhiilb(n,m) 或 myhiilb(num)
	disp(A1);        % 那么直接显示 A1
end 

3. 命令行窗口的尝试

  • 尝试在命令行窗口输入一下代码,更能有效理解这个m函数

A = myhilb(3,2)
B = myhilb(3)
C = myhilb(3,2,3)
D = myhilb()
[E F] = myhilb(3,2)

参考链接:https://www.cnblogs.com/haore147/p/3623319.html

你可能感兴趣的:(Matlab)