MATLAB基本语法——附带一些题目

(1)    用起泡法对输入数由小到大排序. 即将相邻两个数比较,将小的调到前头。

%定义函数paixv 来进行冒泡排序
function paixv(A)
n=length(A);
for i=1:n
    for j=1:n-1
        if A(j)>A(j+1)
            t=A(j);
            A(j)=A(j+1);
            A(j+1)=t;
        end
    end
end
A

 结果:

 

(2)    求一输入矩阵的最大值及其所处的位置。 

function find_max(A)
%读取矩阵的行数和列数
[r,c]=size(A);
max_temp=A(1,1);
max_r=1;
max_c=1;
for i=1:r
    for j=1:c
        if max_temp<A(i,j)
            max_temp=A(i,j);
            max_r=i;
            max_c=j;
        end
    end
end
fprintf('最大元素为%f\n',max_temp);
fprintf('最大元素所在的行数为:%f\n最大元素所在列数为:%f\n',max_r,max_c)

结果:

(3)    一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高? 

function slove_ball
h=100;
s=0;
for i=1:10
    s=s+2*h;
    h=h/2;
end
s=s-100;
fprintf('十次落地时共经过 %f 米\n',s);
fprintf('第十次反弹 %f 米\n',h);

 结果:

(4)    画出函数 f(x,y)=x^2+sin(xy)+2y 的图形,并写一程序,输入自变量的值, 输出函数值。 

%画图
x=-10:0.1:10;
y=-10:0.1:10;
[X,Y]=meshgrid(x,y);
Z=X.^2+sin(X*Y)+2*Y;
mesh(X,Y,Z);

 

%计算
function slove_f(x,y)
sum=x*x+sin(x*y)+2*y;
sum

 结果: 

 

 (5)    求小于任意自然数 n 的 Fibonacci 数列各项?

%定义斐波那契数列函数
function y=fib(n)
if n==1|n==2
    y=1;
else
    y=fib(n-1)+fib(n-2);
end
%定义求解函数
function slove_fib(x)
i=1;
while fib(i)<=x
    A(i)=fib(i);
    i=i+1;
end
A

 结果如下:

 

(6)判断一输入数是否为素数?并输去 [100, 1000] 以内的全部素数? 

%判断素数
function f=if_sushu(x)
f=1;
if x==1
    f=0;
elseif x==2
    f=1;
else
    for i=2:x-1
        if mod(x,i)==0
            f=0;
        end
    end
end

%输出函数
function slove
j=1;
for i=100:1000
    if if_sushu(i)==1
        A(j)=i;
        j=j+1;
    end
end
A

 结果如下:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值