前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >matlab习题 —— 程序控制流程练习

matlab习题 —— 程序控制流程练习

作者头像
繁依Fanyi
发布2023-05-07 19:15:09
发布2023-05-07 19:15:09
59500
代码可运行
举报
运行总次数:0
代码可运行

一、题目

  • (1) 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
  • (2) 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
  • (3) 定义 10 行 8 列的 Hilbert 矩阵(
a_{ij = \frac{1}{i+j-1}}

  • (4) 生成100000 以内的斐波那契数列各项,
a_{1}=1,a_{2}=2,a_{n}=a_{n-1}+a_{n-2},n=3,4,5,...
  • (5) 求满足条件
n! \gt 10^{15}

的最小整数

  • (6) 输出全部的五位五角星数(例如 54748,
5^5+4^5+7^5+4^5+8^5=54748

  • (7) 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
  • (8) 编程计算鸡兔同笼(三十五头,九十四足)
  • (9) 绘制分段函数
f(x)=\left\{ \begin{aligned} &-x,\qquad&-5\text{\textless}x\text{\textless}0\\\\ &\frac{x^2}{2},\qquad&0 \le{x}\le{2}\\\\ &2sin(\frac{\pi}{x}),\qquad&2\text{\textless}x\text{\textless}5 \end{aligned} \right .
  • (10) 读取数据 sd.xlsx,对 1,2 列每行计算其和,和大于 6 在第 3 列相应行输入字母 A,否则输入字母 B,对 4,5 列每行计算其差,差大于 2 在第 6 列相应行输入字母 AB,否则输入字母 BA,并将操作以后的数据填回 sd.xlsx

二、解答

题一

① 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
代码语言:javascript
代码运行次数:0
复制
function out = getNum(date)

date_str = num2str(date);
 
d = [strcat(date_str(1:4),'-',date_str(5:6),'-',date_str(7:8))];

d_new = [strcat(date_str(1:4),'-01-01')];

out = daysact(d_new,d);

end

题二

① 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
代码语言:javascript
代码运行次数:0
复制
function out = getNum(date)

date_str = num2str(date);

d = [strcat(date_str(1:4),'-',date_str(5:6),'-',date_str(7:8))];

out = weekday(d);

end

题三

① 定义 10 行 8 列的 Hilbert 矩阵(
a_{ij = \frac{1}{i+j-1}}

代码语言:javascript
代码运行次数:0
复制
function m = Hilber()
for i=1:10
    for j=1:8
        a(i,j) = 1/(i+j-1);
    end
end
m = a;
end

题四

① 生成100000 以内的斐波那契数列各项,
a_{1}=1,a_{2}=2,a_{n}=a_{n-1}+a_{n-2},n=3,4,5,...
代码语言:javascript
代码运行次数:0
复制
function fib_arr = fib(k)
    num(1) = 1;
    num(2) = 1;
    for i=3:k
        num(i) = num(i-1) + num(i-2);
        if num(i) >= k
            break
        end
        fib_arr = num(1:end-1);
end

题五

① 求满足条件
n! \gt 10^{15}

的最小整数

代码语言:javascript
代码运行次数:0
复制
function out = getNum()
num(1) = 1;
for i = 1:1000000
    if(num(i) > 10^15)
        break
    end
    num(i+1) = num(i)*i
end

out = num(end-1);
    
end

题六

① 输出全部的五位五角星数(例如 54748,
5^5+4^5+7^5+4^5+8^5=54748

代码语言:javascript
代码运行次数:0
复制
function out = getNum()
count = 0;
for i=10000:99999
    a = fix(i/10000);
    b = fix(rem(i,10000)/1000);
    c = fix(rem(i,1000)/100);
    d = fix(rem(i,100)/10);
    e = fix(rem(i,10)/1);
    if(a^5+b^5+c^5+d^5+e^5==i)
        count = count + 1;
        num(count) = i;
    end
end
out = num;
end

题七

① 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
代码语言:javascript
代码运行次数:0
复制
function out = getNum(a,b,c)
if(a+b>c && a-b<c)
    p = (a+b+c)/2;
    s = (p*(p-a)*(p-b)*(p-c))^(1/2);
end

out = s;
end

题八

① 编程计算鸡兔同笼(三十五头,九十四足)
代码语言:javascript
代码运行次数:0
复制
function out = getNum()
syms x y;
enq1 = x + y == 35;
enq2 = 2*x + 4*y == 94;
A = solve(enq1,enq2,x,y);
out = A;
end

题九

① 绘制分段函数
代码语言:javascript
代码运行次数:0
复制
x=-5:.1:5;
f=zeros(size(x));
for i=1:length(x)
    if (x(i)>-5) & (x(i)<0)
        f = -x
    end
    if (x(i)>=0) & (x(i)<=2)
        f = x.^2/2
    end
    if (x(i)>2) & (x(i)<5)
        f = 2*sin(pi./x)
    end
end
plot(f,x)

题十

① 读取数据 sd.xlsx,并将操作以后的数据填回 sd.xlsx
  • 程序1
代码语言:javascript
代码运行次数:0
复制
data1=xlsread('F:\sd.xlsx',1,'A1:B191')
for i = 1:length(data1)
if data1(i,1)+data1(i,2)>6
xlswrite('F:\sd.xlsx','A',1,strcat('C',num2str(i)))
else
xlswrite('F:\sd.xlsx','B',1,strcat('C',num2str(i)))
end
end
  • 程序二
代码语言:javascript
代码运行次数:0
复制
data2=xlsread('F:\sd.xlsx',1,'D1:E191')
for i = 1:length(data2)
if abs(data2(i,1)-data2(i,2))>2
xlswrite('F:\sd.xlsx',{'AB'},1,strcat('F',num2str(i)))
else
xlswrite('F:\sd.xlsx',{'BA'},1,strcat('F',num2str(i)))
end
end
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目
  • 二、解答
    • 题一
      • ① 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
    • 题二
      • ① 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
    • 题三
      • ① 定义 10 行 8 列的 Hilbert 矩阵(
    • 题四
      • ① 生成100000 以内的斐波那契数列各项,
    • 题五
      • ① 求满足条件
    • 题六
      • ① 输出全部的五位五角星数(例如 54748,
    • 题七
      • ① 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
    • 题八
      • ① 编程计算鸡兔同笼(三十五头,九十四足)
    • 题九
      • ① 绘制分段函数
    • 题十
      • ① 读取数据 sd.xlsx,并将操作以后的数据填回 sd.xlsx
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档