matlab系列文章:👉 目录 👈

文章目录

一、题目
- (1) 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
- (2) 已知 2022 年 1 月 1 日为星期六,建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出该日是星期几
- (3) 定义 10 行 8 列的 Hilbert 矩阵() 
- (4) 生成100000 以内的斐波那契数列各项,
- (5) 求满足条件 
- (6) 输出全部的五位五角星数(例如 54748,) 
- (7) 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
- (8) 编程计算鸡兔同笼(三十五头,九十四足)
- (9) 绘制分段函数
- (10) 读取数据 sd.xlsx,对 1,2 列每行计算其和,和大于 6 在第 3 列相应行输入字母 A,否则输入字母 B,对 4,5 列每行计算其差,差大于 2 在第 6 列相应行输入字母 AB,否则输入字母 BA,并将操作以后的数据填回sd.xlsx
二、解答
题一
① 建立函数,其中输入变量为按年月日排序的 8 位整数(如 20220530),输出变量为该日期在年度的日序数
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),输出该日是星期几
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 矩阵( )
)
function m = Hilber()
for i=1:10
    for j=1:8
        a(i,j) = 1/(i+j-1);
    end
end
m = a;
end题四
① 生成100000 以内的斐波那契数列各项,
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题五
① 求满足条件 
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, )
)
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题七
① 交互式输入三个实数,若以此三数为边长能构成三角形,求其面积
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题八
① 编程计算鸡兔同笼(三十五头,九十四足)
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题九
① 绘制分段函数
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
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- 程序二
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
    
    
 
 
                     
            
        













 
                    

 
                 
                    