MATLAB编程基础

来源:互联网 发布:淘宝全屏导航条制作 编辑:程序博客网 时间:2024/06/15 03:30

一、数组:

    MATLAB中基本上都是使用数组来存储数据的,数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应的行标和列标。如果这个数组是一个行向量或列向量,则只需要一个下标。

    数组的下标都是从1开始的。例:A=[1 2 3 4],则A(2)表示的是数据2.

    数组运算与矩阵运算:

          数组/矩阵加法:A+B

         数组/矩阵减法:AB

         数组乘法:A.*B(A和B的元素逐个对应相乘,两数组之间必须有相同的形,或其中一个是标量)

          矩阵乘法:A*B(A的列数=B的行数)

         数组右除法:A./B(A和B的元素逐个对应相除,A(i,j)/B(i,j),两数组之间必须有相同的形,或其中一个是标量)

          数组左除法:A.\B(A和B的元素逐个对应相除,B(i,j)/A(i,j),两数组之间必须有相同的形,或其中一个是标量)

         矩阵右除法:A/B(矩阵除法等价于A*inv(B),inv(B)是B的逆矩阵)

          矩阵左除法:A\B(矩阵除法等价于B*inv(A),inv(A)是A的逆矩阵)

          数组指数运算:A.^B(A和B的元素逐个进行如下运算,A(i,j)^B(i,j)A(i,j)/B(i,j),两数组之间必须有相同的形,或其中一个是标量)

二、变量

    像C语言这样的语言中,变量类型和变量在使用之前必须强制声明,这种语言我们叫它强类型语言。相对的,像MATLAB这样的叫弱类型语言,通过简单的赋值形式就可以创建变量,变量的类型取决于创建时的类型。

    特殊变量:

                        Inf:表示无穷大,一般是除以0产生的;

                        NaN:表示没有这个数,一般由数学运算得到。例如0除以0;

                       clock:这个特殊变量包含了当前的年,月,日,时,分,秒,是一个6元素行向量

                       data:当前的日期,使用的字符形式,如30-Dec-2014

                       eps:代表计算机能辨别的两数之间的最小数(epsilon)

    初始化:

                        a、直接复制(=&&first:incr:last)

                       b、input方式输入

%this is a program about input  x = input('enter a number:');  string = ['the number u input is:',num2str(x)];  disp(string);
                       c、从文件中读入

三、输出

1、disp函数

    此函数可联合nums2tr(将一个数转化为字符串)和int2str(将一个整数转化为字符串)来产生新的信息,显示在命令窗口中。

2、fprintf函数格式化输出数据

fprintf('the value of pi is %6.0f',pi) 
四、简单语句结构

1、if语句(求解二次函数)

%this is a program about equation solution  a = input('please input a = ');  b = input('please input b = ');  c = input('please input c = ');  if b^2-4*a*c>0      x1 = (-b + sqrt(b^2-4*a*c))/(2*a);      x2 = (-b - sqrt(b^2-4*a*c))/(2*a);      fprintf('the answer of this equation is :x1 = %6.2f,x2 = %6.2f\n',x1,x2);  elseif b^2-4*a*c == 0      x = (-b)/(2*a);      fprintf('the answer of this equation is :x = %6.2f',x);  else      real_part = (-b)/(2*a);      image_part = sqrt(abs(b^2-4*a*c))/(2*a);       fprintf('the answer of this equation is :x = %6.2f+%6.2fi\n',real_part,image_part);       fprintf('the answer of this equation is :x = %6.2f-%6.2fi\n',real_part,image_part);  end 
2、try...catch

%this is a program about try-catch  a=[1:10];  try      b = input('please input the number u want to cheak:');     disp(['a(' int2str(b) ') = ' num2str(a(b))] );  catch      disp( ['Illegal subscript: ' int2str(b)] );  end