1. 程式人生 > >matlab入門筆記

matlab入門筆記

我是看的B站上燈神的視訊學習的matlab,由於已經學過好幾種語言了,所以並沒有覺得特別難懂,但是有些比較明顯的地方,我還是放在下面,方便自己以後回憶。

x ~= 0       %x不等於0
mod(172,56)  %取模
x=-3:0.1:3   %-33,每次增長0.1
x=x.*x       %x的平方
x=x.^3       %x的三次方

求和

x=input('enter a x:');
y=input('enter a y:');
fprintf('%g + %g = %g\n',x,y,x+y);

判斷

num = input('please enter a number:'
); if num > 0 fprintf('positive\n'); elseif num < 0 fprintf('negative\n'); else sprintf('num=0\n'); end

是否能構成三角形

a = input('enter a value of a:');
b = input('enter a value of b:');
c = input('enter a value of c:');
if (a + b >c) &&( b + c > a)&&(a + c > b)
    fprintf
('Yes\n') else fprintf('No\n') end

判斷二次方程是否有解

a=input('a=');
b=input('b=');
c=input('c=');

delta = b^2 - 4 *a*c;

if delta >0
    fprintf('2 solutions\n');
    x1= (-b + sqrt(delta))/(2*a);
    x2=(-b - sqrt(delta))/(2*a);
    fprintf('x1=%f\n',x1);
    fprintf('x2=%f\n',x2);
elseif delta==0
    fprintf
('1 solution\n'); x1=-b /(2*a); fprintf('x1=%f\n',x1) else fprintf('no solution\n'); end

迴圈

v =[5 7 9 10 12 32];
s= 0;
for i = v
    s=s+i;
end
disp(s)
disp(sum(v))

函式

function result=mysum(a,b)
    s = 0;
    for i = a:b
        s =s+i;
    end
    result = s;
end

動畫

X=-2*pi:0.1:2*pi;
Y = sin(X);
h = plot(X,Y);
while true
    X = X+0.1;
    Y = sin(X);
    set(h,'XData',X,'YData',Y)
    drawnow;
end

約數個數

function result = count_factor( n )
    count=0;
    for i=1:n;
        if mod(n,i)==0
            count=count+1;
        end
    end
        result=count;
end

是否為素數

function result =is_prime( n)
    count=count_factor(n);
    if count==2
        result=1;
    else
        result=0;
    end   
end

列出1-1000之間的所有質數

for i=1:1000
    if is_prime(i)==1
        disp(i)
    end
end

動畫

theta = -10*pi:0.1:10*pi; 
X = cos(theta);
Y = sin(theta);
Z = theta;

h = plot3(X,Y,Z);

while true
    for i = 1:100
        Z=0.98*Z;
        set(h,'XData',X,'YData',Y,'ZData',Z);
        drawnow;
    end
   
    for i = 1:100
        Z=Z/0.98;
        set(h,'XData',X,'YData',Y,'ZData',Z);
        drawnow;
    end
end

動畫

t=0:pi/50:2*pi;
X=cos(t);
Y = sin(t);
plot(X,Y);
axis euqal;

動畫

t=0:pi/50:2*pi;

X=cos(t);
Y = sin(t);
plot(X,Y);
hold on;
lineX = [0,1];
lineY= [0,0];
h = plot(lineX,lineY);

theta=0;
while true
    theta = theta + 0.05;
    lineX(2)=cos(theta);
    lineY(2)=sin(theta);
    set(h,'XData',lineX,'YData',lineY);
    drawnow;
end

動畫

X=-10:0.4:10;
Y=-10:0.4:10;
[XX,YY]=meshgrid(X,Y);
ZZ=sin(XX)+cos(YY);
h=surf(XX,YY,ZZ);
% axis([-10,10,-10,10,-5,5]);
while true
for i=1:100
ZZ=0.97*ZZ;
set(h,'XData',XX,'YData',YY,'ZData',ZZ);
drawnow;
end
for i=1:100
ZZ=ZZ/0.97;
set(h,'XData',XX,'YData',YY,'ZData',ZZ);
drawnow;
end
end