如何使用matlab实现分段函数「建议收藏」

如何使用matlab实现分段函数「建议收藏」实现如下的分段函数:m={t0≤t<1−t+21<t≤20.1其他m=\left\{\begin{array}{rcl}t&&{0\leqt<1}\\-t+2&&{1&am

大家好,又见面了,我是你们的朋友全栈君。

实现如下的分段函数:
m = { t 0 ≤ t &lt; 1 − t + 2 1 &lt; t ≤ 2 0.1 其 他 m=\left\{ \begin{array}{rcl} t &amp; &amp; {0 \leq t &lt;1}\\ -t+2 &amp; &amp; {1 &lt; t \leq 2}\\ 0.1 &amp; &amp; {其他}\\ \end{array} \right. m=tt+20.10t<11<t2

方法一:

# 先写一个函数脚本; function m=fenduanhanshu(t) m=t.*(t>=0 & t<1)+(-t+2).*(t>1 & t<=2)+0.1.*(t<0 | t>2) # 注意此处是点乘,否则会报错内部矩阵维度不一致; end 

此处语句解释:当表达式中的(t>=0 & t<1)成立时,此时的布尔表达式值为True,值为1,t*(t>=0 & t<1) = t1;此时表达式中的布尔表达式(t>1 & t<=2)和(t<0 | t>2)都不成立,取0参与运算,故此时m=t1+(-t+2)0+0.10 = t;

# 在command window中调用此函数,并作图; >> x=0:0.01:2; >> m=fenduanhanshu(t); >> plot(m,t) 

作图如下:
在这里插入图片描述

方法二:

# 写一个脚本后直接运行; t=-1:0.01:3; # 自己根据需要设置; m=zeros(size(t)); # 生成与矩阵t相同大小的全零矩阵; for i=1:length(t) # 数组长度(即行数或列数中的较大值); if (t(i)>=0)&(t(i)<=1) m(i)=t(i); elseif (t(i)>1)&(t(i)<=2) m(i)=-t(i)+2; else m(i)=0.1; end end plot(t,m,'r') # 'r'表示线为红色; grid on # 网格 
>> t=-1:0.01:3; >> size(t) # 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数,第二个元素是矩阵的列数; ans = 1 401 
B=zeros(n) # 生成n×n全零阵; B=zeros(m,n) # 生成m×n全零阵; B=zeros([m n]) # 生成m×n全零阵; B=zeros(d1,d2,d3……) # 生成d1×d2×d3×……全零阵或数组; B=zeros([d1 d2 d3……]) # 生成d1×d2×d3×……全零阵或数组; B=zeros(size(A)) # 生成与矩阵A相同大小的全零阵; 
n=length(A) # 如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A)); # 如果A为空数组,则返回0; # 如果A是一个向量则返回A的长度; n=numel(A) # 该语句返回数组A中元素的总数; 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124797.html原文链接:https://javaforall.net

(2)
上一篇 2022年4月20日 上午7:20
下一篇 2022年4月20日 上午7:40


相关推荐

  • java数组反转Reverse

    java数组反转Reverse三种反转数组的方法:publicclassReverseArray{publicvoidreverse(int[]arr){for(inti=0;i

    2022年6月9日
    205
  • 创意无限:25款非常酷的高档名片设计欣赏

    创意无限:25款非常酷的高档名片设计欣赏名片是最强大的营销工具之一 只要你手一出 你就有机会与人沟通 推介你产品和业务 当然也会给客户留下深刻的印象 在当今竞争激烈的商业世界 花在市场营销和广告的费用很多 但你可以采取一个独特的 非常有创意的来作为成本最低而最有效益的营销工具 下面分享 25 款非常酷的国外名片设计欣赏 相信能够帮助你设计一款独一无二的名片 您可能还喜欢 40 款奇特的透明名片设计作品欣赏最新 70 佳很酷的

    2026年3月19日
    1
  • 普通人也能玩转DeepSeek大模型:从入门到精通的保姆级教程

    普通人也能玩转DeepSeek大模型:从入门到精通的保姆级教程

    2026年3月16日
    4
  • SQL中decimal的相关使用[通俗易懂]

    SQL中decimal的相关使用[通俗易懂]decimal用于表示定点实数,具体使用格式为:decimal[(p[,s])],其中p表示精度,用于指定小数点左边和右边十进制数字的最大位数,取值在1-38之间,缺省值为18,s指定小数点右边十进制数的最大位数,取值在0-p之间缺省值为0(此时小数点后面没有小数位,所有输入的小数位都会被自动四舍五入)。故而定义了一个decimal类型的变量的时候,要注意这个否则就会发生越界的情况。…

    2022年7月20日
    33
  • android 系统权限设置工具_安卓修改系统设置权限

    android 系统权限设置工具_安卓修改系统设置权限Android 系统权限

    2022年4月21日
    66
  • 2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型

    2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型MATLAB 基于元胞自动机模型的传染病扩散模型基本思路 地图矩阵可以分为两类 一类是健康人矩阵 一类是感染者矩阵 健康人感染后则落入感染者矩阵 感染者康复后则升上健康人矩阵通过建立三维矩阵 Track 在 x 轴和 y 轴之上加入时间轴形成三维 来追踪已感染的人的感染时间 从而判定康复 通过设置 NewMap 和 NewPatientMa 两个过渡矩阵来更新每次的随机移动 防止先更新的人在遍历过程中再次被选中导致一个回合内多次移动 将地图分为两种 一种是健康人地图 一种是病人地图 多个人可以在同一个点

    2025年11月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号