Matlab程序练习
Part1
1.求 [100,999] 之间能被 21整除的数的个数。
程序:
主文件:main.m
clear;
start_num = 100;
end_num = 999;
div_num = 21;
res = div(start_num,end_num,div_num);
fprintf("[%d,%d]之间能被%d整除的数的个数为%d个\n",start_num,end_num,div_num,res);
函数文件:div.m
function num=div(sta,ed,divnum)num=0;for i=sta:edif mod(i,divnum)==0num = num+1;endend
end
运行截图:
2.从键盘输入一个4位的整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第一位数与第三位数互换,第二位数与第四位数互换。
程序:
主文件:main.m
clear;
n=input('请输入一个4位整数:');
res = process(n);
fprintf("加密后的数字为:%d\n",res);
函数文件:process.m
function ennum = process(num)ennum=0;n4 = mod(num,10)+7;n3 = mod(fix(num/10),10)+7;n2 = mod(fix(num/100),10)+7;n1 = fix(num/1000)+7;n4 = mod(n4,10);n3 = mod(n3,10);n2 = mod(n2,10);n1 = mod(n1,10); ennum = n3*1000+n4*100+n1*10+n2;
end
3.一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称之为绝对素数,例如13是绝对素数,试求出所有两位绝对素数。要求:定义一个判断素数的函数文件。
程序:
主文件:main.m
clear;
abs_prime=[];
for num=10:99unit = mod(num,10);decade = fix(num/10);if isprime(num)==1 && isprime(unit*10+decade)==1abs_prime(end+1) = num;end
end
fprintf("所有的两位绝对素数为:");
disp(abs_prime);
函数文件:isprime.m
function flag=isprime(num)flag=1;for i=2:num-1if mod(num,i)==0flag=0;breakendend
end
运行截图:
4.设 f ( x ) = 1 ( x − 2 ) 2 + 0.1 + 1 ( x − 3 ) 4 + 0.01 f(x)=\frac{1}{(x-2)^2+0.1}+\frac{1}{(x-3)^4+0.01} f(x)=(x−2)2+0.11+(x−3)4+0.011,编写一个函数文件fx.m
,使得调用fx
时,x 可用矩阵代入,得出的 f ( x ) f(x) f(x)为同阶矩阵。
程序:
主文件:main.m
clear;
x = input('请输入x的值,可以为一个数字,也可以为一个矩阵\nx=');
disp(fx(x));
函数文件:fx.m
function matrix = fx(x)matrix = 1./((x-2).^2+0.1) + 1./((x-3).^4+0.01);
end
运行截图:
5.已知 y = f ( 40 ) f ( 30 ) + f ( 20 ) y=\frac{f(40)}{f(30)+f(20)} y=f(30)+f(20)f(40),
(1)当 f ( n ) = n + 10 l n ( n 2 + 5 ) f(n)=n+10ln(n^2+5) f(n)=n+10ln(n2+5)时, y y y 的值是多少?
(2)当 f ( n ) = 1 ∗ 2 + 2 ∗ 3 + 3 ∗ 4 + ⋯ + n ∗ ( n + 1 ) f(n)=1*2+2*3+3*4+\cdots+n*(n+1) f(n)=1∗2+2∗3+3∗4+⋯+n∗(n+1) 时, y y y的值是多少?
程序:
主文件:main.m
clear;
y1 = fx1(40)/(fx1(30)+fx1(20));
fprintf("第一问:y的值为%f\n",y1);
y2 = fx2(40)/(fx2(30)+fx2(20));
fprintf("第二问:y的值为%f\n",y2);
函数文件:
fx1.m
function num=fx1(n)num = n+10*log(n^2+5);
end
fx2.m
function num = fx2(n)num=0;for i=1:nnum = num+(i*(i+1));end
end
运行截图:
6.编写一个函数,计算 x=-5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0 对应的y值。
y = { x 2 + x − 6 , x < 0 且 x ≠ − 3 x 2 − 5 x + 6 , 0 ≤ x < 5 且 x ≠ 2 及 x ≠ 3 x 2 − x − 1 , 其他 y = \begin{cases} x^2+x-6, x<0且x\neq-3\\ x^2-5x+6,0\leq x<5且x\neq 2及x\neq3\\ x^2-x-1,其他 \end{cases} y=⎩ ⎨ ⎧x2+x−6,x<0且x=−3x2−5x+6,0≤x<5且x=2及x=3x2−x−1,其他
程序:
主文件:main.c
clear;
x = [-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
y = [];
for i=1:length(x)y(end+1) = fx(x(i));
end
disp(y);
函数文件:fx.m
function y=fx(x)y=0;if x<0 && x ~= -3y = x^2 + x - 6;elseif 0<=x && x<5 && x~=2 && x~=3y = x^2 - 5*x +6;elsey = x^2-x-1;end
end
运行截图:
7.编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值
程序:
主文件:main.m
clear;
x = input('x=');
[meann,maxi,mini,rms] = calc(x);
fprintf("平均值为%f,最大值为%f,最小值为%f,均方根值为%f\n",meann,maxi,mini,rms);
函数文件:calc.m
function [meann,maxi,mini,rms]=calc(x)meann = mean(x);maxi = max(x);mini = min(x);N = length(x);sigama = 0;for i=1:Nsigama = sigama+x(i)^2;endrms = sqrt(1/N * sigama);
运行截图:
Part2
1.设 y = ( 0.5 + 3 sin x 1 + x 2 ) cos x y = ( 0.5 + \frac { 3 \sin x } { 1 + x ^ { 2 } } ) \cos x y=(0.5+1+x23sinx)cosx,把 x = 0 ∼ 2 π x=0 \sim 2\pi x=0∼2π 区间分为101点,绘制函数的曲线。
程序:
clear;
x = 0:2*pi/101:2*pi;
y = (0.5+(3.*sin(x))./(1+x.^2)).*cos(x);
plot(x,y,'LineWidth',2);
xticks(0:pi/2:2*pi);
xticklabels({'0','\pi/2','\pi','3\pi/2','2\pi'});
t = title('$ y=(0.5+\frac{3 \sin x}{1+x^2}) \cos x $');
set(t,'Interpreter','latex','FontSize',14);
运行截图:
2. 用不同线型和颜色在同意坐标内绘制曲线 y = 3 e x p ( − 1.5 x ) s i n ( 3 π x ) y=3exp(-1.5x)sin(3\pi x) y=3exp(−1.5x)sin(3πx)及其包络线。
程序:
clear;
x = -3*pi:pi/50:3*pi;
y = 3.*exp(-1.5.*x).*sin(3*pi.*x);
[up,lo] = envelope(y);
plot(x,y,'r');
hold on;
plot(x,up,'b--',x,lo,'b--');
t = title('$ y=3exp(-1.5x) \sin(3\pi x) $');
set(t,'Interpreter','latex','FontSize',14);
运行截图:
3.绘制 s i n x 、 s i n ( 2 x ) 、 s i n ( x 2 ) sinx、sin(2x)、sin(\frac{x}{2}) sinx、sin(2x)、sin(2x)的函数曲线并添加图形标注,自变量范围自选,标注类型自选。
程序:
clear;
x = -4*pi:pi/50:4*pi;
y1 = sin(x);
y2 = sin(2.*x);
y3 = sin(x./2);
plot(x,y1,'blue',x,y2,'red',x,y3,'green','LineWidth',1);
h = legend('$y = \sin(x)$','$y = \sin(2x)$','$y = \sin(\frac{x}{2})$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',14);
运行截图:
4.已知 y 1 = x 2 , y 2 = c o s ( 2 x ) , y 3 = y 1 ∗ y 2 y_1=x^2,y_2=cos(2x),y_3=y_1*y_2 y1=x2,y2=cos(2x),y3=y1∗y2,完成下列操作。
(1)在同一坐标系下用不同的颜色、线宽均设置为2绘制三条曲线,并为各条曲线加上图例;
(2)以子图(subplot)形式绘制3条曲线;
程序:
clear;
x = -4*pi:pi/50:4*pi;
y1 = x.*x;
y2 = cos(2.*x);
y3 = y1.*y2;%Request1
figure(1);
plot(x,y1,'r',x,y2,'g',x,y3,'b','linewidth',2);
h = legend('$y_{1} = x^{2}$','$y_{2} = \cos(2x)$','$y_{3} = y_{1}*y_{2}$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',12);%Request2
figure(2);
subplot(1,3,1);
plot(x,y1);
title('$y_{1} = x^{2}$','Interpreter','latex','fontsize',12);
subplot(1,3,2);
plot(x,y2);
title('$y_{2} = \cos(2x)$','Interpreter','latex','fontsize',12);
subplot(1,3,3);
plot(x,y3);
title('$y_{3} = y_{1}*y_{2}$','Interpreter','latex','fontsize',12);
运行截图:
5.在同一张图中绘制下面三个函数在 t ∈ [ 0 , 4 π ] t\in[0,4\pi] t∈[0,4π]的图像。 { y 1 = t y 2 = t y 3 = 4 π e − 0.1 t s i n ( t ) \begin{equation}\begin{cases}y_1=t \\ y_2=\sqrt{t} \\y_3=4\pi e^{-0.1t}sin(t) \end{cases}\end{equation} ⎩ ⎨ ⎧y1=ty2=ty3=4πe−0.1tsin(t)
程序:
clear;
t = 0:pi/50:4*pi;
y1 = t;
y2 = sqrt(t);
y3 = 4*pi*exp(-0.1.*t).*sin(t);
plot(t,y1,t,y2,t,y3);
legend('$ y = t $','$y = \sqrt{t}$','$y = 4\pi e^{-0.1t} sin(t)$','interpreter','latex','location','NorthEastOutside');
xticks(0:pi/2:4*pi);
xticklabels({'0','\pi /2','\pi','3\pi/2','2\pi','5\pi /2','3\pi','7\pi /2','4\pi'});
运行截图:
6.创建指数函数rexp,绘制指数信号 y = A ∗ e x p ( α ∗ t ) y=A*exp(\alpha*t) y=A∗exp(α∗t),在三种情况下 ( ( 1 ) α = 0.5 , ( 2 ) α = 0 , ( 3 ) α = − 0.5 (1)\alpha=0.5,(2)\alpha = 0,(3)\alpha=-0.5 (1)α=0.5,(2)α=0,(3)α=−0.5 )的时域波形,其中A自赋值,时间区间都是[-3,3]。
程序:
主文件:main.m
clear;
%rexp()函数传入两个参数 A 和 α
A = input('A=');
x = -3:1/50:3;
y1 = rexp(A,0.5);
y2 = rexp(A,0);
y3 = rexp(A,-0.5);
plot(x,y1,x,y2,x,y3);
h = legend('$\alpha = 0.5$','$\alpha = 0$','$\alpha = -0.5$','location','NorthEastOutside');
set(h,'Interpreter','latex','fontsize',12);
title(sprintf('A=%.2f',A));
函数文件:div.m
function y=fx7(x)y=[];for i=1:length(x)if x(i)<=0y(end+1)=sin(x(i));elseif 0<=x(i) & x(i)<=3y(end+1)=x(i);elsey(end+1)=-x(i)+6;endend
运行截图:
7.编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图像。函数用function写出来,主程序里给出区间,并画图。KaTeX parse error: {equation} can be used only in display mode.
程序:
clear;
x = -6:1/50:6;
y = fx7(x);
plot(x,y);
text(-5.8,0,'$y=sin(x),x\leq0$ ','interpreter','latex','fontsize',10);
text(0.1,1,'$y=x,0<x\leq3$ ','interpreter','latex','fontsize',10);
text(3.1,0,'$y=-x+6,x\geq3$ ','interpreter','latex','fontsize',10);
运行截图:
8.利用plot3绘制下列三维图形,并对图形进行相关的辅助说明。
(1)KaTeX parse error: {equation} can be used only in display mode. (2) KaTeX parse error: {equation} can be used only in display mode.
程序:
程序:
clear;
t = -20*pi:pi/50:20*pi;
x1 = cos(t);
y1 = sin(t);
z1 = t;
%Request1
figure(1);
plot3(x1,y1,z1);
title('x=cost ; y=sint; z=t','FontSize',12);%Request2
t = 0:pi/50:2*pi;
x2 = (2+cos(t./2)).*cos(t);
y2 = (2+cos(t./2)).*sin(t);
z2 = sin(t./2);
figure(2);
plot3(x2,y2,z2);
title({'$x=(2+cos\frac{t}{2})cost$', '$y=(2+cos\frac{t}{2})sint,0\leq t \leq 2\pi$', '$z=sin\frac{t}{2}$'},'interpreter','latex');
运行截图:
9.用mesh和surf函数,绘制方程 z = x 2 10 + y 2 10 z=\frac{x^2}{10}+\frac{y^2}{10} z=10x2+10y2 和 z = − x 2 10 + y 2 10 z=-\frac{x^2}{10}+\frac{y^2}{10} z=−10x2+10y2所表示的三维空间曲面,x和y的取值范围设为[-3,3]。
程序:
clear;
x = -3:1/10:3;
y = -3:1/10:3;
[x,y] = meshgrid(x,y);
z1 = (x.*x)/10 + (y.*y)/10;
z2 = -(x.*x)/10 + (y.*y)/10;figure(1);
subplot(1,2,1);
mesh(x,y,z1);
subplot(1,2,2);
surf(x,y,z1);
sgtitle('$z=\frac{x^2}{10}+\frac{y^2}{10}$','Interpreter','latex');figure(2);
subplot(1,2,1);
mesh(x,y,z2);
subplot(1,2,2);
surf(x,y,z2);
sgtitle('$z=-\frac{x^2}{10}+\frac{y^2}{10}$','Interpreter','latex');
运行截图:
相关文章:

Matlab程序练习
Part1 1.求 [100,999] 之间能被 21整除的数的个数。 程序: 主文件:main.m clear; start_num 100; end_num 999; div_num 21; res div(start_num,end_num,div_num); fprintf("[%d,%d]之间能被%d整除的数的个数为%d个\n",start_num,end_…...

cesium可不可以改变影像底图颜色,如何给地球底图影像添加一层滤镜蒙版?
废话:你的球是不是很丑?是不是没有科技感?是不是没有好看的影像? 因果: 因:客户问,底图可不可以改变颜色,想让球更漂亮一些。 答:可以改变影像饱和度,透明度…...

MyBatis-MappedStatement什么时候生成?QueryWrapper如何做到动态生成了SQL?
通过XML配置的MappedStatement 这部分MappedStatement主要是由MybatisXMLMapperBuilder进行解析,核心逻辑如下: 通过注解配置的MappedStatement 核心逻辑就在这个里面了: 继承BaseMapper的MappedStatement 我们看看这个类,里…...
Netty系列-2 NioServerSocketChannel和NioSocketChannel介绍
背景 本文介绍Netty的通道组件NioServerSocketChannel和NioSocketChannel,从源码的角度介绍其实现原理。 1.NioServerSocketChannel Netty本质是对NIO的封装和增强,因此Netty框架中必然包含了对于ServerSocketChannel的构建、配置以及向选择器注册&am…...

智能客服的四大优势,提升企业服务效率
在这个信息化快速发展的时代,客户服务的重要性越来越凸显。传统的客服方式已经无法满足企业日益增长的服务需求,于是智能客服服务应运而生。智能客服服务不仅改变了企业与客户的互动方式,还提高了服务效率和客户满意度。本文将深入探讨智能客…...
AutoGPT开源项目解读
AutoGPT开源项目解读 (qq.com) AutoGPT旨在创建一个自动化的自我改进系统,能够自主执行和学习各种任务 项目基本信息 首先阅读项目的README.md,下述代理和智能体两个名词可互换 项目简介:一个创建和运行智能体的工具,这些智能体…...

Linux离线安装fontconfig
Linux离线下载yum包,安装字体库 一、下载安装包 以CentOS Linux release 7.9.2009下载fontconfig的rpm包的为例 http://mirror.centos.org/centos/7/按提示跳转历史库 找到对应版本的centos https://vault.centos.org/7.9.2009/os/x86_64/Packages/在Packages目…...

海山数据库(He3DB)+AI:(一)神经网络基础
文章目录 1 引言2 基本结构2.1 神经元2.2 模型结构 3 训练过程3.1 损失函数3.2 反向传播3.3 基于梯度的优化算法 4 总结 1 引言 神经网络可以被视为一个万能的拟合器,通过深层的隐藏层实现输入数据到输出结果的映射。神经网络的思想源于对大脑的模拟,在…...
CSS中选择器有哪些?(史上最全选择器)
CSS选择器是用来选择和应用样式到HTML元素上的工具。以下是所有主要的CSS选择器的详细分类和描述: 1. 基本选择器 通配符选择器 (*):选择所有元素。例如,* { color: red; } 会将所有元素的文字颜色设置为红色。元素选择器:选择指…...

本地部署 AI 智能体,Dify 搭建保姆级教程(下):知识库 RAG + API 调用,我捏了一个红楼解读大师
话接上篇: 本地部署 AI 智能体,Dify 搭建保姆级教程(上):工作流 Agent,把 AI 接入个人微信 相信大家已经在本地搭建好 Dify 了。 今日分享,继续介绍 Dify 的另外两项重要功能: 知…...
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 答案纯享版
这篇文章是高级题库答案纯享版,只有需要选择的选项。如果需要查看所有选项,可以点击下方链接跳转。以考代学,还是推荐点击下方链接,查看完整的题库,边看边学习鸿蒙应用开发。此题库已更新完毕,笔者将不继续…...
基于PHP的文件包含介绍
引言:在实际开发过程中,经常会遇到部分模块功能需要重复使用的情况,比如数据库的增删改查,文件包含通过将需要重复使用的功能模块代码引入其他文件的内容,实现重用代码、分离配置等。然而,如果文件包含操作…...

K7系列FPGA多重启动(Multiboot)
Xilinx 家的 FPGA 支持多重启动功能(Multiboot),即可以从多个 bin 文件中进行选择性加载,从而实现对系统的动态更新,或系统功能的动态调整。 这一过程可以通过嵌入在 bit 文件里的 IPROG 命令实现上电后的自动加载。而…...

关于武汉芯景科技有限公司的RS232通信接口芯片XJ3243EEUI开发指南(兼容MAX3243EEUI)
一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、典型应用电路 三、功能描述 1.Transmitter 通过T1,T2可以将TTL电平转换为RS232电平 2.Receiver 通过R1,R2可以将RS232电平转换为TTL电平 3.工作模式控制 4.INVALID引脚...

TreeSize Free:你的免费磁盘空间管理专家
TreeSize Free是一款专为Windows用户设计的磁盘空间分析工具。它能够帮助用户快速识别并管理那些占用大量空间的文件夹和文件。 功能亮点 快速扫描:TreeSize Free能够迅速扫描整个磁盘卷,展示所有文件夹及其子文件夹的大小,甚至可以细化到单…...
python办公自动化:初识`python-docx`
1.1 什么是python-docx python-docx是一个用于在Python中创建和操作Word文档的库。它提供了一组简洁的API,让开发者可以轻松地生成、修改、和读取Microsoft Word (.docx)文件,而不需要安装Microsoft Office。这使得python-docx成为办公自动化、报告生成…...
LeetCode 算法:划分字母区间 c++
原题链接🔗:划分字母区间难度:中等⭐️⭐️ 题目 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接&#…...

PMP备考指南:策略、时间安排与心得分享
准备和时间安排,我是工作的时间把它顺便考了,大约花了一个月左右时间备考,前面的时间都在筹办婚礼,根本没时间,最后一个月都差点想放弃了,但想想还是冲一把就没有选择延考。 干货见下: ▌&…...
CentOS上通过frp实现HTTPS访问内网
要在CentOS上通过frp实现HTTPS访问内网,你需要按照以下步骤操作: 在外网服务器上安装frps(frp服务端)。 在外网服务器上配置frps,编辑配置文件frps.ini。 在frps服务器上启动frps服务。 在内网服务器上安装frpc&…...

短视频SDK解决方案,高效集成,助力商业变现
美摄科技,作为业界领先的多媒体技术服务商,其全面升级的短视频SDK解决方案,旨在为开发者与内容创作者提供一站式、高效能的创作工具,让每一个灵感都能瞬间转化为触动人心的视频作品。 【一站式解决方案,重塑短视频创作…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...