matlab语言程序设计基础,第二章 MATLAB 语言程序设计基础

MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB MATLAB

MATLAB MATLABMATLAB

2.1 MATLAB MATLAB 123194

MATLAB

ans

pi

eps

11

flops

inf

1/0

NaN

0/0

ij

i=j=

nargin

nargout

realmin

realmax

_1017148015.unknown

_1234630425.unknown

1MATLAB . 2% . 3 ....

+

.

*

.*

/

./

^

.^

\

.

IEEE64 (8)1153 double( ) uint880255int8( ), int16( ), int32( ),uint16( ), uint32( )

sym(A), syms var_list var_props syms a b real syms c positive vpa(A), vap(A,n)>> vpa(pi)ans = 3.1415926535897932384626433832795>> vpa(pi,60)ans =3.14159265358979323846264338327950288419716939937510582097494

{}A{i,j}Ai,jMATLAB

>> a=pi^2 a = 9.8696

>> B=[1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7+3i,8+2j 1i]B = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000iMATLAB

[ a,b,c]=my_fun(d,e,f,c) v=s1:s2:s3 vs1 s21 s3 (0,p) >> v1=0:0.2:piv1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000

>> v2=0:-0.1:pi %v2 = Empty matrix: 1-by-0>> v3=0:piv3 = 0 1 2 3>> v4=pi:-1:0 v4 = 3.1416 2.1416 1.1416 0.1416>> v5=[0:0.4:pi,pi]v5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416

B=A(v1,v2) v1 v2>> A=[1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0]A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0>> B1=A(1:2:end,:) B1 = 1 2 3 4 5 6 7 8

>> B2=A([3,2,1],[2,3,4]) 321234 A =B2 = 1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0>> B3=A(:,end:-1:1) AB3 = 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7

(AHermit

MATLAB BA. C=A2.2

C=A+B D=A-B

MATLAB C=A*B

AX = B XMATLAB X=A\BA X=A-1BA

XA = B X MATLABX=B/AA X=BA-1A

B=fliplr(A) C=flipud(A) 90o ( D=rot90(A) 180o >> D=rot180(A) ??? Undefined function or variable 'rot180'. >> D=rot90(rot90(A)) A MATLAB F=A^x

-- : MATLAB C=A.*B:>> A=[1,2,3;4,5,6;7,8,0];>> B=A.^AB = 1 4 27 256 3125 46656 823543 16777216 1>> C=A.*AC = 1 4 9 16 25 36 49 64 0

double 0 1 A&C A|C ~A xor(A,C)

>, >=, AA = 1 2 3 4 5 6 7 8 0>> find(A>=5), 5 ans = 3 5 6 8

>> [i,j]=find(A>=5);[i,j] ans = 3 1 2 2 3 2 2 3>> all(A>=5) 510ans = 0 0 0>> any(A>=5) 510ans = 1 1 1

MATLAB s1=simple(s) [s1,how]=simple(s) ss1how help collect( ) expand( ) factor( ) numden( ) sincos( )

>> syms s; >> P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) P =(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64)

>> simple(P) % ans = (s+3)^2*(s+2)*(s+1)*(s+4)^3

>> [a,m]=simple(P) % factor( ) a = (s+3)^2*(s+2)*(s+1)*(s+4)^3m =factor

>> expand(P) ans = s^7+21*s^6+185*s^5+883*s^4+2454*s^3+3944*s^2+3360*s+1152

fx*x Taylor

>> syms a b c d t; % >> f=cos(a*t+b)+sin(c*t)*sin(d*t); % f(t)>> f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})f1 = -1.0000

0

-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187>> A=[-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187];>> floor(A) % -inf ans = -1 0 1 2 1 -2>> ceil(A) % +inf ans = 0 1 2 3 2 -1>> round(A) %ans = 0 1 1 2 1 -2>> fix(A) % 0 ans = 0 0 1 2 1 -1

3x3 Hilbert rat() >> A=hilb(3); [n,d]=rat(A) n,dn = 1 1 1 1 1 1 1 1 1d = 1 2 3 2 3 4 3 4 5

:18561201483720>> format long>> m=1856120; n=1483720; [gcd(m,n), lcm(m,n)]m,nans = 1.0e+009 * 0.00000196000000 1.40508284000000>> factor(lcm(n,m)) lcm(n,m)ans = 2 2 2 5 7 7 757 947

1-100>> A=1:10; isprime(A) A1ans = 0 1 1 0 1 0 1 0 0 0>> A=1:100; B=A(isprime(A))B = Columns 1 through 16 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 Columns 17 through 25 59 61 67 71 73 79 83 89 97rem(A,C) %AC

2.3 MATLAB for

while

>> s=0;for i=1:100 s=s+i;end>> s=0; i=1;while (i> sum(1:100)ans = 5050 m>> s=0; m=0;while (s

>> tic, s=0; for i=1:100000, s=s+1/2^i+1/3^i; end; tocelapsed_time = 1.1820>> tic, i=1:100000; s=sum(1./2.^i+1./3.^i); toc elapsed_time = 0.3010>> i=1:10;s=1./2.^i+1./3.^i, ss=sum(1./2.^i+1./3.^i)s = 0.8333 0.3611 0.1620 0.0748 0.0354 0.0170 0.0083 0.0041 0.0020 0.0010ss = 1.4990

m

>> s=0;for i=1:10000 s=s+i; if s>10000, break; endend>> ii = 141

C break otherwise C defaultcasecase

1lasterr2

12212.3.4

MATLAB M-scriptM M-script 10000

m 10000 M-script

2.4 MATLAB

2.4.1 MATLAB nargin nargout MATLAB MATLABvarargin, varargout

m, 10000 function [m,s]=findsum(k) s=0; m=0; while (s> [m1,s1]=findsum(145323)m1 = 539s1 = 145530

edit myhilb

function A=myhilb(n, m)%A=MYHILB(N,M)A=MYHILB(N)if nargout>1, error('Too many output arguments.'); endif nargin==1, m=n; elseif nargin==0 | nargin>2 error('Wrong number of input arguments.'); endA1=zeros(n,m);for i=1: n for j=1:m A1(i,j)=1/(i+j-1);end, endif nargout==1, A=A1; elseif nargout==0, disp(A1); end

>> help myhilb A=MYHILB(N,M)A=MYHILB(N)>> A=myhilb(3,4)A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667>> A=myhilb(4)A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429>> A=myhilb(3,4,5)??? Error using ==> myhilbToo many input arguments.

function k=my_fact(n)if nargin~=1, error(''); endif nargout>1, error(''); endif abs(n-floor(n))>eps | n1 % n>1, k=n*my_fact(n-1);elseif any([0 1]==n) % 0!=1!=1 k=1;end

>> my_fact(11)ans = 39916800 MATLABfactorial(), prod(1:n),>> prod(1:11)ans = 39916800>> prod(1:3:11)ans = 280

conv( ) varargin function a=convs(varargin) a=1; for i=1:length(varargin), a=conv(a,varargin{i}); end

>> P=[1 2 4 0 5]; Q=[1 2]; F=[1 2 3]; D=convs(P,Q,F)D = 1 6 19 36 45 44 35 30>> poly2sym(D)ans =x^7+6*x^6+19*x^5+36*x^4+45*x^3+44*x^2+35*x+302.4.2

>> E=conv(conv(P,Q),F) % conv() E = 1 6 19 36 45 44 35 30>> poly2sym(E)ans =x^7+6*x^6+19*x^5+36*x^4+45*x^3+44*x^2+35*x+30

>> G=convs(P,Q,F,[1,1],[1,3],[1,1])G = 1 11 56 176 376 578 678 648 527 315 90

2.4.3 inline inline

f=inline(sin(x.^2+y.^2),x,y)MATLAB 7.0

2.5 2.5.1 :

r-.pentagram

>> x=[-pi : 0.05: pi]; % 0.05 >> y=sin(tan(x))-tan(sin(x)); % >> plot(x,y)>> plot(x,y,'r-.pentagram')

>> x=[-pi:0.05:-1.8,-1.801:.001:-1.2, -1.2:0.05:1.2,... 1.201:0.001:1.8, 1.81:0.05:pi]; % >> y=sin(tan(x))-tan(sin(x)); % >> plot(x,y) %

>> x=[-2:0.02:2]; % >> y=1.1*sign(x).*(abs(x)>1.1) + x.*(abs(x)> plot([-2,-1.1,1.1,2],[-1.1,-1.1,1.1,1.1])

set( )get( )

2.5.2

>> theta=0:0.01:6*pi; rho=5*sin(4*theta/3); polar(theta,rho)>> rho=5*sin(theta/3); polar(theta,rho)

>> t=0:.2:2*pi; y=sin(t); % >> subplot(2,2,1), stairs(t,y) % >> subplot(2,2,2), stem(t,y) % >> subplot(2,2,3), bar(t,y) % >> subplot(2,2,4), semilogx(t,y) %

2.5.3

>> ezplot(x^2 *sin(x+y^2) +y^2*exp(x+y)+5*cos(x^2+y)) x >> ezplot('x^2 *sin(x+y^2) +y^2*exp(x+y)+5*cos(x^2+y)',[-10 10])

2.6

stem

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值