zoukankan      html  css  js  c++  java
  • Matlab脚本和函数

    脚本和函数

    脚本:

    特点:按照文件中所输入的指令执行,一段matlab指令集合。运行后,运算过程产生的所有变量保存在基本工作区。可以进行图形输出,如plot()函数。

    举例:

    脚本文件ex4_15.m:

    array=zeros(1,32);
    
    for n=3:32                      %3-32递增的循环
    
        array(n)=rank(magic(n));
    
    end
    
    array;
    
    bar(array)

     

    相关函数(超链接显示详细内容):

    零矩阵X = zeros(n) 返回一个 n×n 的全零矩阵。

    幻方矩阵M = magic(n) 返回由 1 到 n2 的整数构成并且总行数和总列数相等的 n×n 矩阵。阶次 n 必须为大于或等于 3 的标量。


    求矩阵的秩k = rank(A) 返回矩阵 A 的秩。

    条形图:bar(y) 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是矩阵,则 bar 根据 y 中的行对条形分组。

     

    函数:

      特点:以function开始的m文件。函数文件定义的变量为局部变量,函数执行完后清除。函数是一个“黑箱”,把数据输入进行加工处理再输出。

    function [y1,...,yN] = myfun(x1,...,xM)

      实例:

      函数文件average.m

    function y=average(x)
    
    [a,b]=size(x);
    
    if~((a==1)|(b==1)|((a==1)&(b==1)))     
    
    %判断是否为向量 a,b至少有一个为1
    
        error('必须输入向量')
    
    end
    
    y=sum(x)/length(x);

     

    function:函数声明

    y:输出参数(可以为多或者无)

    x:输入参数(可以为多或者无)

    相关函数(超链接显示详细内容):

      数组大小sz = size(A) 返回一个行向量,其元素包含 A 的相应维度的长度。例如,如果 A 是一个 3×4 矩阵,则 size(A) 返回向量 [3 4]sz 的长度为数组的维度。如果 A 是表或时间表,则 size(A) 返回由表中的行数和变量数组成的二元素行向量。

      引发错误并显示消息:error(‘XXX’)

    典型规范的M函数文件总结:

    1. 函数定义行:function引导,函数名与文件名相同,定义输入输出参数。
    2. H1行:紧随函数声明的第一个注释行,供lookfor查询使用。(包括大写的函数文件名和运用关键词简要描述的函数功能)
    3. 帮助文本:%开头的注释,通常包括输入输出的变量含义及调用说明
    4. 函数体:实现功能的matlab命令

    规范文件[庄1] (spirallength.m)实例:

    function spir_len = spirallength(d,n,lcolor) 
    % circle plot a circle of radius as r in the provided color and calculate
    % its area 用提供的颜色绘制一个半径为r的圆,并计算其面积
    % d:螺旋的旋距
    % n:螺旋的圈数
    % lcolor:画图线的颜色
    % spir_len:螺旋的周长
    % spirallength(d,n):蓝色为预设参数的螺旋线
    % spirallength(d,n,lcolor):利用lcolor颜色为参数的螺旋线
    % spir_len = spirallength(d,n):计算并返回螺旋线周长,利用蓝色为参数的螺旋线
    % spir_len = spirallength(d,n,lcolor):计算并返回周长,利用lcolor颜色为参数的螺旋线
    %编写于2019.6.4 庄林武
    
    if nargin>3               %nargin为调用参数个数
        error('输入参数过多!');
    elseif nargin == 2
            lcolor= 'b';      %输入参数只有两个,不包括颜色信息,设置颜色为蓝色
    end
    j=sqrt(-1);
    phi = 0:pi/1000:n*2*pi;
    amp = 0:d/2000:n*d;
    spir = amp .*exp(j*phi);
    if nargout == 1           %nargout为调用函数返回的参数个数
        spir_len =sum(abs(diff(spir)));
        fill(real(spir),imag(spir),lcolor)    %real(x)复数x的实部 imag(x)复数x的虚部
    elseif nargout == 0
         plot(spir,lcolor)
    else
        error('输入变量过多');
    end
    axis('square')
            

    相关函数(超链接显示详细内容):

    平方根B = sqrt(X) 返回数组 X 的每个元素的平方根。对于 X 的负元素或复数元素,sqrt(X) 生成复数结果。

    指数Y = exp(X) 为数组 X 中的每个元素返回指数 ex。对于复数元素 z = x + iy,它返回以下复指数ez=ex(cosy+isiny) .

       差分和近似导数Y = diff(X) 计算沿大小不等于 1 的第一个数组维度的 X 相邻元素之间的差分:

      数组元素总和:S = sum(A) 返回 A 沿大小不等于 1 的第一个数组维度的元素之和。

      填充的二维多边形:fill(X,Y,C) 根据 X 和 Y 中的数据创建填充的多边形(顶点颜色由 C 指定)。C 是一个用作颜色图索引的向量或矩阵。

      二维线图:plot(Y,LineSpec) 设置线型、标记符号和颜色。

      设置坐标轴范围和纵横比:axis(limits) 指定当前坐标区的范围。以包含 4 个、6 个或 8 个元素的向量形式指定范围。


     [庄1]理解实例需要了解螺旋图数学原理的画法(待解决)

  • 相关阅读:
    Mac OS X下Maven的安装与配置
    [MAC Eclipse] Eclipse for MAC 中文乱码的解决办法
    The type javax.servlet.http.HttpServletRequest cannot be resolved.
    IOS基础:深入理解Objective-c中@class的含义
    NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
    真机测试时的错误:No matching provisioning profiles found
    转帖Jmeter中的几个重要测试指标释义
    Spring集成log4j日志管理
    Log4J日志配置详解
    使用Redis的理由
  • 原文地址:https://www.cnblogs.com/asahiLikka/p/11577637.html
Copyright © 2011-2022 走看看