Matlab

Since Apr.6th,2016

  • linspace:产生一系列整数。linspace(a, b, c)产生的数 x 范围为 a≤x≤b ,总数为 c 。
    注意和 a:b:c的区别,a:b:c中 c 是步长。步长 c 和 总数 c 的乘积为 b-a。

  • prod:求乘积。对矩阵使用时是以行为单位进行的。
    >> prod(1:10)

    ans =
    
         3628800
    
    >> prod([1 2 3;4 5 6])
    
    ans =
    
         4    10    18
    
  • asin(x):反正弦函数。

  • real(z):复数z的实部

    imag(z):复数z的虚部

  • 矩阵表示:空格和逗号,等效,在列与列(或者理解为行元素之间)使用,分号;在表示行与行之间使用。
    >> [1,2,3;4,5,6;7,8,9]

    ans =
    
       1     2     3
       4     5     6
       7     8     9
    
  • str2num,num2str:将字符串转化为数字,将数字转化为字符串。

  • char:ascii 码表的实现,输入 ascii 码值,输出对应的字符。

  • vpa:表示任意位有效数字,输出为 sym 类型(一般 double 类型有效数字只能保留15或16位)
    通过和 char 函数的组合,可以将一个很大的多位数转化成字符串。

kobe = char(vpa(2^1000,302)) % 输出2^1000的全部302位

输出为

kobe =

  10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376.0
  • 注意不可以用 num2str(vpa(2^1000,302)),因为 num2str 要求输入变量为 double 类型,而 不是 vpa 输出的 sym 类型。
  • 注意 ascii 码转化时若没有对应的字符(比如 . 等),会返回一个空集,在后续运算进行加减时要特别注意。
  • 另外尽可能把 sym 类型的符号变量作为 vpa 的输入变量类型,即在没有定义的情况下要把表达式用单引号'包起来(符号变量没有申明则需要加上单引号),不然在内部表达式计算的时候还是作为浮点数来计算的,会损失精度。
  • x = A\B,x = A/BX=A\B 表示 X = inv(A) * B , 为 A*X=B 的解。X=A/B 表示 X = A * inv(B) , 为 X*B=A 的解。
A = [3,5,-1;1,2,4;2,-6,7];
b = [2;0;8];
x = A\b

以上代码即为求解线性方程组
3x+5y-z=2;x+2y+4=0;2x-6y+7z=8
运算结果为

x =

    1.9535
   -0.7907
   -0.0930
  • ['test'...'test'...'test']:换行输入字符串的格式
s = ['37107287533902102798797998220837590246510135740250'...
'46376937677490009712648124896970078050417018260538'...
'74324986199524741059474233309513058123726617309629']

输出为

s =

  371072875339021027987979982208375902465101357402504637693767749000971264812489697007805041701826053874324986199524741059474233309513058123726617309629

如果只是一般的语句换行,在行末加...就可以了。

  • factor,factorial:factor 用来分解质因数,factoria 用来计算阶乘。

你可能感兴趣的:(Matlab)