zoukankan      html  css  js  c++  java
  • MATLAB学习(一)——状态好状态坏,自作自受

      状态不好,学学MATLAB做做准备吧。

    一、基本情况

    1.1 书写  

    一行写不下?

    %可以加上三个小黑点(续行符)并按下回车键,然后接下去再写。例如 s=1-1/2+1/3-1/4+1/5-1/6+1/7-…- 1/8+1/9-1/10+1/11-1/12;

    1.2 运算相关

    不等于:~=

    所以,非:~

    常用的矩阵运算:

    eye(size(A))   产生与A矩阵同阶的单位矩阵

    zeros(m,n)         产生0矩阵

    ones(m,n)         产生1矩阵

     rand (m,n)        产生随机元素的矩阵

    Size(a)          返回包含两个元素的向量。

    Length(a)     返回向量的最大者。

    --两个栗子

    求解线性方程组AX=B                     

                 1    1.5   2      9    7                    3  

                 0    3.6   0.5  -4    4                  -4 

    其中A=      7    10    -3   22   33    , B=    20 

                 3    7     8.5   21   6                    5  

                 3    8     0      90  -20                16 

        在MATLAB命令窗口输入命令:                           

        a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20];

        b=[3;-4;20;5;16];

        x=a

        【例2】  求方程 x^4+7x^3 +9x-20=0的全部根。  

     在MATLAB命令窗口输入:

        p=[1,7,0,9,-20];   %建立多项式系数向量

        x=roots(p)         %求根

    二、程序设计

    2.1 输入输出数据

    --输入

    调用格式:  A=input(提示信息,选项);

     R = INPUT('What is your name','s')

    求一元二次方程ax^2+bx+c=0

    a=input('a=?');

        b=input('b=?');

        c=input('c=?');

        d=b*b-4*a*c;

        x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]

    将该程序以aa.m文件存盘,然后运行aa.m文件。

    --disp

            A='Hello,MATLAB';

            disp(A)

    输出为:  Hello,MATLAB

    2.2 举个例子

    计算素数

    % Calculate the primes between min to max
    clc
    clear all
    max=input('The maxium num is ')
    min=input('The minum num is ')
    
            
     n=0;
        for m=min:max
           flag=1; %the sign of prime or not
           j=m-1;
           i=2;
           while i<=j & flag
               if rem(m,i)==0
                  flag=0;
               end
        i=i+1;
           end
           if flag 
              n=n+1;
              prime(n)=m;
           end
        end
        prime %变量prime存放素数
           

    输入20个数,求其中最大数和最小数。要求用循环结构来实现。

    function [max,min]=findmaxmin(a)
    if ~ismatrix(a)
        disp('Please type in a matrix!')
    else
        [m,n]=size(a);
        max=a(1,1);
        min=a(1,1);
        for i=1:m
            for j=1:n
                if a(i,j)<=max&a(i,j)>=min
                    continue
                elseif a(i,j)>max
                    max=a(i,j);
                elseif a(i,j)<min
                    min=a(i,j);
                end
            end
        end
    end

    三、文件操作

    建立一数据文件test.dat,用于存放矩阵A的数据

    A=[-0.6515  -0.2727  -0.4354  -0.3190  -0.9047
             -0.7534  -0.4567  -0.3212  -0.4132  -0.3583
             -0.9264  -0.8173  -0.7823  -0.3265  -0.0631
             -0.1735  -0.7373  -0.0972  -0.3267  -0.6298
             -0.4768  -0.6773  -0.6574  -0.1923  -0.4389]
    
     Fid=fopen('test.dat', 'w')
    
    
     cnt=fwrite(Fid, A, 'float')
    
    
    
     fclose(Fid)

     四、绘图

    4.1 plot

    计算0-2pi的sinx*cos5x

    clear
    clc
    x=linspace(0,2*pi,120);
    y=sin(x).*cos(5*x);
    plot(x,y);
    title('sinx*cos5x');      
    xlabel('x');     
    ylabel('y');       
    text(x,y,'y'); %线上文字
    legend('sinx*cos5x');  %图示
    axis auto;
    axis on;       
  • 相关阅读:
    最短路径—Dijkstra算法和Floyd算法
    设计模式之工厂模式(Factory模式)
    接口继承与实现继承
    设计模式之工厂模式
    C++的四种强制转型形式:
    手写atoi、strcpy、strcat
    进程和线程关系及区别
    海量数据处理
    什么是死锁,简述死锁发生的四个必要条件,如何避免与预防死锁
    kolla-ansible 重新部署 ceph 遇到的问题
  • 原文地址:https://www.cnblogs.com/andy1202go/p/5231577.html
Copyright © 2011-2022 走看看