zoukankan      html  css  js  c++  java
  • matlab基础向1-6:基础语法

    1.软件中如何运行代码?

    命令行直接写代码,回车执行,也可以在文件里编写代码,比如有文件hello.m,点击“Run”直接运行或者在命令行窗口里输入“hello+回车”运行。

    2.清空命令行

    clc+回车

    3.数据类型

    没有数据类型,也不需要声明变量,直接赋值,在赋值的时候就定义了。比如:

    a=10;
    fprintf('a = %d
    ',a);
    b=15.12600;
    fprintf( 'b = %g, b = %f, b = %.2f
    ',b,b,b);
    disp(a);
    disp(b);
    disp('hello');
    c=10
    d=11.2
    e=16.78888

    输出:

    a = 10
    b = 15.126, b = 15.126000, b = 15.13
    10

    15.1260

    hello

    c = 

        10

    d = 

        11.2000

    e = 

        16.7889

    由此推测:%d是整型,%g是去掉多余的0,%f是输出6位小数,%.2f是四舍五入保留2位小数。disp()类似C语言的puts(),如果是输出小数disp()默认保留4位小数,有换行功能。如果语句后面不加分号,会默认输出这个变量。如果是小数,默认四舍五入保留4位小数,不会去掉尾部0。

    测试大数:

    f=123456789
    g=1234567891
    h=1234567899876543211
    i=9223372036854775807%longlong范围
    fprintf('f=%d
    ',f);
    fprintf('g=%d
    ',g);
    fprintf('h=%d
    ',h);
    fprintf('i=%d
    ',i);
    disp(f);
    disp(g);
    disp(h);
    disp(i);

    输出:

    f =

    123456789

    g =

    1.2346e+09

    h =

    9.1235e+18

    i =

    9.2234e+18

    f=123456789
    g=1234567891
    h=1234567899876543211
    i=9.223372e+18
    123456789

    1.2346e+09

    9.1235e+18

    9.2234e+18

    由此推测:对于整数,disp只能精确输出9位,有十位数 就用四位小数的科学计数法表示,fprintf可以精确表示到17位数,19位数有个分界值,往前可以表示出19位,往后只能用科学计数法表示。但是用19位数表示时个位和十位不准确。

    5.输入语法

    a = input('please input a:');
    b = input('');
    disp(a);
    disp(b);

    input语法,不能输入字符型,并且括号内必须要有单引号。

    6.次方和对数

    5^3表示5的3次方

    log(32)默认表示底数是e,log2(32)表示底数是2,log10(100)表示底数是10,必须要加括号,不能是其他底数,2和10前不能有空格。

    如果想表示别的底数,用换底公式。loga(b) = ( log (b) ) / ( log (a) )

    7.向量vector(数组)

    比如x=[ 1,2,3 ];或者x=[1 2 3];//空格或者分号都可以,维度相同才能相加减。

    二维向量/矩阵不同行用分号隔开

    a=[ 1,2;3 4];

    b=[ 5 6;7 8];

    a*b:前者行*后者列。(要求:前者行 = 后者列)

    a.*b:对应相乘。(要求维度相同)

    8.自带求和函数

    sum(a);

    a表示数组名,一维直接求和,二维竖着求和。

    a=[1 2 3 4];
    b=[11  100; 9  2];
    c=[1000 1000];
    sum(a);
    sum(b);
    c+sum(a)
    c+sum(b)
    

    输出:

    1010 1010

    1020 1102

    9.单行注释

    % a=15;

    10.while循环

    t=3
    while t>0
        fprintf('hello
    ');
        t=t-1;
    end
    

    相比C语言

    没有大括号,结尾有个end,不需要加分号。

    循环条件没有小括号。

    没有t--。

    没有t-=1。

    11.for循环

    for i=1:1:5  %等于 i=1:5
        fprintf('i=%d hello
    ',i);
    end
    for i=5:-1:1
        fprintf('i=%d facai
    ',i);
    end
    

    循环变量起始值:每次加的值:小于等于的数

    相当于C语言的for(int i=1;i<=5;i++)

    注意matlab中间是冒号隔开。养成良好习惯,中间默认的1最好写上。

    12.if语句

    for i=1:1:3
        if i==1
            fprintf('facai111
    ');
        elseif i==3
            fprintf('facai333
    ');
        else
            fprintf('facai222
    ');
        end
    end
    

    没有大括号,并且else的执行语句后需要加一个end,elseif之间没有空格。

    13.不等于

    i~=0

    14.取模(mod)和取余(rem)

    mod(13,4) = 1
    rem(13,4) = 1

    mod(-13,-4) = -1
    rem(-13,-4) = -1

    mod(-13,4) = 3
    rem(-13,4) = -1
    mod(13,-4) = -3
    rem(13,-4) = 1

    个人推测:

    前四条可以默认是常规操作,参数两个都是负数则结果也变为负数。看着像是C语言的%

    其他的可以这样表示: 被除数 = 除数*k  +  ans

    通过调整k使得除数*k更大或者更小

    mod(-13,4) = 3

    负数 = 更小 + ans  -13 = 4*(-4) + 3
    rem(-13,4) = -1   

    负数 = 更大 + ans  -13 = 4*(-3) + (-1)
    mod(13,-4) = -3

    正数 = 更大 + ans   13 = (-4)*(-4) + (-3)
    rem(13,-4) = 1

    正数 = 更小 + ans   13 = (-4)*(-3) + 1

    15.自写函数

    模板:

    function 返回值名 = 自写函数名(参数) 

      正文

      返回值名;%如果没有可以不写

    end

    如果没有返回值或者参数,则是:

    function 自写函数名()

      正文

    end

    可以在命令行里直接调用自写函数,自写函数的文件名最好和自写函数名一样,如果有两个相同的自写函数,系统默认调用先保存的。同一个文件夹里的自写函数直接调用,不需要声明啥的。

    16.continue和break

    作用和C语言一样,记得加end。

    17.corr(求相关系数矩阵)

    求矩阵的相关系数,比如矩阵A是35行8列的矩阵,每一列是一种指标,求指标之间的相关系数矩阵,则用X=corr(A);X是8行8列的矩阵,斜对称并且对称轴X(i,i)=1;

  • 相关阅读:
    1069: [SCOI2007]最大土地面积
    Kettle 解决数据锁的问题(事务(进程 ID 51)与另一个进程被死锁在 锁 资源上)
    Kettle配合Windows执行计划实现定时实行作业
    把本地项目同步到码云
    IDEA通过Maven WebApp archetype 创建Spring boot项目骨架
    从零开始完整搭建 Spring-Boot 项目开发框架的教程
    使用IDEA搭建Spring Boot入门项目
    Win10激活失败并提示错误代码0xC004C003的解决方法
    javascript (JS组成、书写位置、基本概念、作用域、内存问题、变量)
    HTML基础之标签
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/11183951.html
Copyright © 2011-2022 走看看