示例函数:

分段函数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表示“段数不确定”的分段函数相关推荐

  1. matlab分段函数的表达_【MATLAB】06_分段函数的多种表示方法

    目录 方法一:(一般方法) 方法二:(find) 方法三:(关系运算) 方法一:(一般方法) 按照正常的思路,表示分段函数是在脚本文件里用 if ..else..语句来完成,例如下列代码: funct ...

  2. matlab符号函数绘图法_《MATLAB符号运算及其应用》(黄忠霖著).pdf

    <MATLAB符号运算及其应用>(黄忠霖著).pdf [General Information] 书名=MATLAB符号运算及其应用 作者=黄忠霖,黄京编著 页数=425 出版社=北京市: ...

  3. matlab需要多大运存_提高matlab运行效率

    用过Matlab的人都知道,Matlab是一种解释性语言,存在计算速度慢的问题,为了提高程序的运行效率,matlab提供了多种实用工具及编码技巧. 1. 循环矢量化 Matlab是为矢量和矩阵操作而设 ...

  4. matlab 创建批量文件夹_初识MATLAB

    1. MATLAB是什么? MATLAB,是"matrix laboratory"的缩写形式,意思是矩阵实验室.MATLAB是在1984年由一个大学生把数学课的教学课件重新编程设计 ...

  5. matlab保存f黑白图片_【Matlab学习秘籍】文件读写完全版

    用实例介绍Matlab读写文本文件的方法,包括load.dlmread.csvread.importdata.textscan.dlmwrite.csvwrite.save.fprintf函数的用法. ...

  6. java中函数是什么_[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...

    本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看 ...

  7. evaluate函数使用无效_在Matlab中使用tensorflow (2)

    本篇介绍如何在matlab中调用python训练好的网络模型和权重. 系统环境:win10,matlab2018b,python3.6,tensorflow1.1 代码如下: tf = py.impo ...

  8. ttest函数使用方法_用MATLAB做T检验(ttest)

    t-检验: t-检验,又称student's t-test,可以用于比较两组数据是否来自同一分布(可以用于比较两组数据的区分度),假设了数据的正态性,并反应两组数据的方差在统计上是否有显著差异. ma ...

  9. 基于matlab的脑瘤mr图像处理_基于Matlab GUI的医学图像处理课程虚拟实验平台设计...

    论文写作指导:请加QQ229366758 摘 要:针对医学生工程技术缺乏的状况,分析医学生学习医学图像处理存在的困难,提出利用Matlab图像处理工具和简单的GUI界面,设计和构建包含医学图像处理教学 ...

最新文章

  1. 读论文七步走!CV老司机万字长文:一篇论文需要读4遍
  2. CentOS 编译 openjdk
  3. FF称签约美国百年顶级投行Stifel;Facebook隐私泄露继续发酵,黑客明码标卖聊天信息 | 雷锋早报...
  4. java list set map的区别_Java集合类List/Set/Map的区别和联系
  5. 洛谷 - P2598 [ZJOI2009]狼和羊的故事(最大流最小割)
  6. onclick传参数
  7. RocketMQ单机版本安装(windows环境)
  8. 关于java.lang.ArithmeticException: divide by zero的异常
  9. VFP中轻松绑定 Windows 事件
  10. 计算机专业排版有哪些,计算机专业英语词汇(完美排版_大容量打印版).pdf
  11. mysql 进入数据库名_操作mysql数据库的一些命名
  12. spring aop 声明式事务管理
  13. 记一次RAID阵列的迁移经历
  14. 又一轮子?Typescript+React+Redux,放弃saga,支持服务器渲染同构
  15. 实习技术员的基本功(十)
  16. c语言常量有哪些分类,c语言常量的正确表示方法有哪些
  17. 机房ip和住宅ip的区别是什么?
  18. 业界 | 福布斯:2018年机器学习试点及实施数量将翻倍
  19. JavaScript Canvas2D实现SpriteSheet角色动画
  20. 今年大厂新孵化的app们,让我开眼了

热门文章

  1. 可视化编程语言_可视化编程语言影响图
  2. 首次「机器学习」挑战赛下周开始,内含知识点剧透
  3. jquery打印html页面自动分页,jQuery打印指定区域Html页面并自动分页
  4. 吉大计算机学院课外八学分,通知|关于吉林大学课外八学分相关规定
  5. 疫情可视化(visualization)
  6. 怎么在b站引流?b站怎么吸粉?b站引流技巧和方法
  7. 跨平台移动开发工具:PhoneGap与Titanium全方位比拼
  8. 真人女神换脸二次元女神
  9. 2021最新《python爬虫从0-1》5.正则表达式讲解
  10. jpg图片转换成pdf文件,方法步骤