matlab分段函数的表达_使用matlab表示“段数不确定”的分段函数
示例函数:
分段函数f(x)的段数为数组a的长度减1,在表达f(x)时,不能直接使用a的长度5-1=4.
方法1:
先计算每个间隔点的函数值f(a2),f(a3),f(a4),再循环表示f(x)。
f(x) = (2x+1).*(x>2&&x<=4)
+(f(4)+2x^2+2).*(x>4&&x<=6)
+(f(6)+2x^3+3).*(x>6&&x<=8)
+(f(8)+2x^4+4).*(x>8&&x<=10)
因为每段中的表达式有一定的规律,所以可以用循环进行表示。
代码如下:
function y =f(x)
y = 0;
a = [2 4 6 8 10];
% gap vector is used to store f(a1),f(a2),...,f(a5)
gap = zeros(size(a));
for i = 2:length(a)
gap(i) = 2*(a(i)^(i-1))+(i-1);
end
for i = 2:length(a)
gap(i) = gap(i) + gap(i - 1);
end
% The representation of piecewise function
for i = 1:length(a)-1
y = y + (gap(i) + 2*(x^i)+i).*(x>a(i)&&x<=a(i+1));
end
方法2:
同方法1,先计算间隔点函数值f(a2),f(a3),f(a4),再使用插值函数判断输入的自变量x位于哪个区间,进而使用该区间上的表达式。
代码如下:
function y = f(x)
a = [2 4 6 8 10];
% 计算每个区间的基数f(a2),f(a3),f(a4)
gap=zeros(size(a));
gap(1)=0;gap(end)=nan;
for i=2:length(a)-1
gap(i)=gap(i-1)+2*a(i)^(i-1)+(i-1);
end
%使用插值函数计算x落在哪个区间上,num表示段数。
num=interp1(a,1:length(a),x);
num=ceil(num)-1;
num(isnan(num))=length(a); %处理超过数组a范围的值
num(num==0)=1; %处理第一个x = a(1)
%计算函数值,每个分段上的基数加上该分段上的变量
y=gap(num)+2*x.^num+num;
方法3:
同方法2,但不使用插值函数,使用Find函数判断输入的自变量x位于哪个区间
代码如下:
function y = f(x)
a = [2 4 6 8 10];
% 计算每个区间的基数f(a2),f(a3),f(a4)
gap=zeros(size(a));
gap(1)=0;gap(end)=nan;
for i=2:length(a)-1
gap(i)=gap(i-1)+2*a(i)^(i-1)+(i-1);
end
%使用find函数计算x落在哪个区间上,num表示段数。
num=find(sort([a x]) == x);
num=num(1)-1; % 当a中某元素与x相同时,取第一个。
num(isnan(num))=length(a); %处理超过数组a范围的值
num(num==0)=1; %处理第一个x = a(1)
%计算函数值,每个分段上的基数加上该分段上的变量
y=gap(num)+2*x.^num+num;
参考资料:
matlab分段函数的表达_使用matlab表示“段数不确定”的分段函数相关推荐
- matlab分段函数的表达_【MATLAB】06_分段函数的多种表示方法
目录 方法一:(一般方法) 方法二:(find) 方法三:(关系运算) 方法一:(一般方法) 按照正常的思路,表示分段函数是在脚本文件里用 if ..else..语句来完成,例如下列代码: funct ...
- matlab符号函数绘图法_《MATLAB符号运算及其应用》(黄忠霖著).pdf
<MATLAB符号运算及其应用>(黄忠霖著).pdf [General Information] 书名=MATLAB符号运算及其应用 作者=黄忠霖,黄京编著 页数=425 出版社=北京市: ...
- matlab需要多大运存_提高matlab运行效率
用过Matlab的人都知道,Matlab是一种解释性语言,存在计算速度慢的问题,为了提高程序的运行效率,matlab提供了多种实用工具及编码技巧. 1. 循环矢量化 Matlab是为矢量和矩阵操作而设 ...
- matlab 创建批量文件夹_初识MATLAB
1. MATLAB是什么? MATLAB,是"matrix laboratory"的缩写形式,意思是矩阵实验室.MATLAB是在1984年由一个大学生把数学课的教学课件重新编程设计 ...
- matlab保存f黑白图片_【Matlab学习秘籍】文件读写完全版
用实例介绍Matlab读写文本文件的方法,包括load.dlmread.csvread.importdata.textscan.dlmwrite.csvwrite.save.fprintf函数的用法. ...
- java中函数是什么_[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看 ...
- evaluate函数使用无效_在Matlab中使用tensorflow (2)
本篇介绍如何在matlab中调用python训练好的网络模型和权重. 系统环境:win10,matlab2018b,python3.6,tensorflow1.1 代码如下: tf = py.impo ...
- ttest函数使用方法_用MATLAB做T检验(ttest)
t-检验: t-检验,又称student's t-test,可以用于比较两组数据是否来自同一分布(可以用于比较两组数据的区分度),假设了数据的正态性,并反应两组数据的方差在统计上是否有显著差异. ma ...
- 基于matlab的脑瘤mr图像处理_基于Matlab GUI的医学图像处理课程虚拟实验平台设计...
论文写作指导:请加QQ229366758 摘 要:针对医学生工程技术缺乏的状况,分析医学生学习医学图像处理存在的困难,提出利用Matlab图像处理工具和简单的GUI界面,设计和构建包含医学图像处理教学 ...
最新文章
- 读论文七步走!CV老司机万字长文:一篇论文需要读4遍
- CentOS 编译 openjdk
- FF称签约美国百年顶级投行Stifel;Facebook隐私泄露继续发酵,黑客明码标卖聊天信息 | 雷锋早报...
- java list set map的区别_Java集合类List/Set/Map的区别和联系
- 洛谷 - P2598 [ZJOI2009]狼和羊的故事(最大流最小割)
- onclick传参数
- RocketMQ单机版本安装(windows环境)
- 关于java.lang.ArithmeticException: divide by zero的异常
- VFP中轻松绑定 Windows 事件
- 计算机专业排版有哪些,计算机专业英语词汇(完美排版_大容量打印版).pdf
- mysql 进入数据库名_操作mysql数据库的一些命名
- spring aop 声明式事务管理
- 记一次RAID阵列的迁移经历
- 又一轮子?Typescript+React+Redux,放弃saga,支持服务器渲染同构
- 实习技术员的基本功(十)
- c语言常量有哪些分类,c语言常量的正确表示方法有哪些
- 机房ip和住宅ip的区别是什么?
- 业界 | 福布斯:2018年机器学习试点及实施数量将翻倍
- JavaScript Canvas2D实现SpriteSheet角色动画
- 今年大厂新孵化的app们,让我开眼了