MATLAB自定义函数并绘制

article/2025/9/12 16:55:49

MATLAB在学习生活中应用非常广,简单总结一点MATLAB的使用小技巧,在脚本中自定义函数表达式并进行绘制
主要包括:

  • 线性: f(x)=ax+b
  • 二次:f(x)=ax^2+bx+c
  • 高斯函数:
    在这里插入图片描述
  • 广义高斯函数:
    在这里插入图片描述
  • 对数正态函数:
    在这里插入图片描述

代码实现的主要思路为:

  1. 使用了syms函数来定义变量
  2. 自定义函数表达式
  3. 定义自变量x的取值范围
  4. 使用subs函数把x的值代入自定义好的表达式中,求解出因变量的值
  5. 使用plot函数绘制自定义函数的曲线

绘制曲线图为:

线性函数和二次函数:
函数表达式为:fx1 = x + 5 以及 fx2 = x^2 + 1
在这里插入图片描述
高斯函数与广义高斯函数:

注意:alpha的取值决定了函数顶部的尖锐程度,当alpha<sqrt(2)时曲线很窄;alpha=sqrt(2)时为标准的高斯函数;alpha>sqrt(2)时,曲线的顶部变宽。

在这里插入图片描述
对数正态函数:
在这里插入图片描述

源代码如下(若格式乱了也可以通过:此链接下载相关文件):

%% xiaochen wang 2020/07/11
% plot function curve
% such as:
% linear:f(x)=ax+b
% quadratic:f(x)=ax^2+bx+c 
% gaussian function:f(x)=a*exp(-(x-μ)^2/2σ^2)
% generalized gaussian function:f(x)=a*exp(-|x-μ|^α^2/2σ^2)
% lognormal function:f(x)=a*exp(-(ln(x-s)-μ)^2/2σ^2)clc;
clear all;syms x fx1 fx2 fx3 fx4_1 fx4_2 fx5; % creating symbolic variables or functiona = 20; miu = 0; xigma = 1; % define the parameters of gaussian function, A,μ,σ
alpha = sqrt(4); % define the value of parameter α (generalized gaussian function)
s = 1; % define the value of parameter s (lognormal function)fx1 = x + 5; % linear
fx2 = x^2 + 1; % quadratic
fx3 = a*exp(-(x-miu)^2/(2*xigma^2)); % gaussian
fx4_1 = a*exp(-abs(x-miu)^(alpha^2)/(2*xigma^2)); % generalized gaussian
alpha = sqrt(1); % modify the value of alpha
fx4_2 = a*exp(-abs(x-miu)^(alpha^2)/(2*xigma^2)); % generalized gaussian
fx5 = a*(1/(x*xigma*sqrt(2*pi)))*exp(-(log(x)-miu)^2/(2*xigma^2)); %1/x*xigma*sqrt(2*pi)xx = -5:0.01:5; %variables x 
xx2 = 0.01:0.01:5; %variables x in lognormal function must greater than zero
ans1 = subs(fx1, x, xx);
ans2 = subs(fx2, x, xx);
ans3 = subs(fx3, x, xx);
ans4_1 = subs(fx4_1, x, xx);
ans4_2 = subs(fx4_2, x, xx);
ans5 = subs(fx5, x, xx2);figure('Name', 'Linear_and_Quadratic');
plot(xx, ans1, 'r'); % plot linear function
hold on;
plot(xx, ans2, 'b'); % plot quadratic function
legend('Linear', 'Quadratic');figure('Name', 'Gaussian_and_Generalized gaussian');
plot(xx, ans4_2, 'r'); % alpha = 1
hold on;
plot(xx, ans3, 'g'); % alpha = sqrt(2)
hold on;
plot(xx, ans4_1, 'b'); % alpha = 2
legend('alpha=1', 'alpha=suqt(2)', 'alpha=2')figure('Name', 'Lognormal');
plot(xx2, ans5);
legend('Lognormal');

http://chatgpt.dhexx.cn/article/ad9yuOKu.shtml

相关文章

MATLAB画图函数plot简单用法

用法一 用法二 plot(X, Y, LineSpec); 其中LineSpec是字符串&#xff0c;表示图形设置&#xff1a;线条样式(line style)、每个点的样式(marker)、颜色&#xff08;color&#xff09; 线条样式 点的样式 颜色 LineSpec就是用来描述这三个属性的&#xff0c;也可以只描述其中…

matlab损耗函数曲线,MATLAB 损失函数画图

损失函数画图 Hinge loss function: \[H(z) = max(0,1-z)\] $\psi$-learning loss function: \[{\phi _s}(z) = \left\{ {\begin{array}{*{20}{c}} s&{z < 0}\\ 0&{z \ge 0} \end{array}} \right.\] Normalized Sigmoid loss: \[{P_t}(z) = 1 - \tanh (tz)\] Ramp …

Matlab画图函数与参数

#Matlab画图函数及参数 学习资料方便查阅。 ##plot函数 plot是绘制一维曲线的基本函数&#xff0c;但在使用此函数之前&#xff0c;我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线&#xff1a; close all; xlinspace(0, 2*pi, 100); % 100个点的x座标 ysin(x); %…

matlab画图函数基本使用(适合新手)

matlab画图函数基本使用&#xff08;适合新手&#xff09; 画图1. 散点图&#xff08;scatter()函数&#xff09;&#xff1a;2. 函数图像&#xff08;plot()函数&#xff09;&#xff1a;1. 在同一张图绘制多条曲线2. 改变颜色和大小3.限制X Y坐标轴范围4.grid on 加上网格线5…

MATLAB常用画图函数

图形化 用plot举例直方图histogram条形图bar和barh饼状图pie极坐标polarplot和polarscatter三维图像plot3surfcmeshccontour3contourcontourf 用plot举例 x1 linspace(0,5); y1 sin(4*x);% 在一张画布上生成特定个数的子图像 % 第一个参数横向几个子图 % 第二个参数纵向几个…

What is Drilldown configuration

Created by Wang, Jerry on Aug 25, 2015

Echarts实现柱状图下钻功能

需求描述 在一个类别柱状图上&#xff0c;点击柱状图上的某一类后可显示该类具体的数据。 钻取的定义 钻取是改变维的层次&#xff0c;变换分析的粒度。包括向上钻取(drill up)和向下钻取(drill down).drill up 是在某一维上将低层次的细节数据概括到高层次的汇总数据&#…

Highcharts实现下钻多柱series

钻取功能需要引入或注册额外的功能模块&#xff0c;链接是官方模块的引入文档。 前言 Highcharts实现下钻动态添加多个series 实现 <template><divref"chartRef"style"height:300px;width:800px"></div> </template><script…

手把手教你实现echarts3的折线图下钻drilldown功能系列篇二

开场白 好了, 上一篇介绍了关于echarts下钻&#xff08;drilldown&#xff09;的一些信息&#xff0c;通过上一篇文章我们知道echarts折线图&#xff0c;柱状图没有支持下钻&#xff08;drilldown&#xff09;功能的api&#xff0c;那就需要我们自己动手&#xff0c;丰衣足食了…

Kibana:在 Kibana 中对数据进行深入分析 (drilldown)

我们可以在 Kibana 中对数据进行分析&#xff0c;并生产表格等。我们是否可以为我们展示的数据生产超链接呢&#xff1f;比如&#xff1a; 在我们上面的表格中在左边的表格中&#xff0c;上面所示的 US 是一个超链接。我们点击这个超链接后&#xff0c;它会帮我们启动一个搜索。…

Kibana:使用 drilldown 从一个仪表板切换到另外一个仪表板

Drilldowns&#xff08;也称为自定义操作&#xff09;使你可以配置工作流以对数据进行分析和故障排除。 使用 drilldowms&#xff0c;你可以从一个仪表板导航到另一个仪表板&#xff0c;并随身携带当前时间范围&#xff0c;过滤器和其他参数&#xff0c;因此上下文保持不变。 你…

Kibana:Drilldown 中的 URL 模板

警告&#xff1a;此功能处于 beta 版本&#xff0c;可能会更改。 该设计和代码不如正式的 GA 功能成熟&#xff0c;并且按原样提供&#xff0c;不提供任何担保。 Beta 功能不受官方 GA 功能的支持 SLA 约束。此功能在 7.11 及以上版本提供。 URL 模板 输入使用 Handlebars&…

highchart图表drilldown钻取功能及event点击事件添加(1)

最近做的一个需求是这样的&#xff0c;大类图表柱状图列出来&#xff0c;点击柱状图列出对应子类柱状图&#xff0c;后点击子类的柱状图后跳转到一个新页面列出两个饼状图 我是这么实现的&#xff1a;&#xff08;部分代码demo,饼状图页面为detailChart.html,随便找了个例子顶…

Kibana:为 table 创建链接 drilldown - 7.11 版本

在之前的文章 “Kibana&#xff1a;为 Dashboard 创建链接 drilldown - 7.11 版本”&#xff0c;我为大家介绍了如何使用带参数的 URL drilldown。在很多的时候&#xff0c;在 dashboard 中&#xff0c;有 table 的可视化。那么我们将如何为 table 中的项提供可视化呢&#xf…

下钻图生成 highcharts-column-drilldown

下钻图生成 highcharts-column-drilldown 功能 使用python生成下钻图 来源&#xff1a;https://www.highcharts.com.cn/demo/highcharts/column-drilldown 下钻层数由具体的输入决定&#xff0c;理论上可以无限下钻&#xff0c;不过下钻的层数越深也就意味着需要计算的时间越…

Kibana:为 Dashboard 创建链接 drilldown - 7.11 版本

我在之前的文章 “Kibana&#xff1a;使用 drilldown 从一个仪表板切换到另外一个仪表板” 展示了如何在 dashboard 里使用 drilldown 从一个仪表板到另外一个仪表板的跳转。在今天的文章中&#xff0c;我将介绍如何创建一个链接 drilldown 从而实现从 dashboard 到一个链接的跳…

终极玩转Power BI中Drill-down Choropleth 地图

故事背景 最近有个Power BI的项目有个功能点&#xff0c;颇令我头痛&#xff0c;说来话长&#xff0c;先捋一下需求&#xff1a; 1&#xff0c; 中国地图&#xff08;包含港澳台&#xff09; 2&#xff0c; 可以下钻到省市级&#xff0c;而且是中国->Region->Area->城…

C语言计算阶乘及阶乘的和

计算 n的阶乘。要实现这个阶乘的值并不难&#xff0c;只需要运用到for循环依次相乘即可&#xff0c;但要注意for循环i的初始值一定是从1开始到n结束。 #include<stdio.h> int main() {int i,n;int ret 1;//用于存放阶乘的值scanf("%d", &n);for (i 1; i…

c语言求阶乘的两种算法(递归和循环)

循环法 循环法还是比较简单的&#xff0c;很常规&#xff0c;就先输入你要求的阶乘n&#xff0c;然后一直自减 #include <stdio.h> main() {long n,sum1;//10 以上的阶乘就比较大了&#xff0c;所以用longint i;printf("请输入你要求的阶乘呀&#xff1a;");…