MATLAB中怎么定义一个变量的取值范围,使其只能为0、1,就像C中的,int i,i=0,

MATLAB中怎么定义一个变量的取值范围,使其只能为0、1,就像C中的,int i,i=0,,第1张

如果想限制一个变量只能取0和1,可以使用logical类型的变量.

示例:

>>a=logical(0)

a =

0

>>a(1)=3

a =

1

需要注意,后面对logical变量赋值时,要带下标,如a(1),如果直接用a=3则会导致a被重载为一个double类型的变量.

第一步:根据G=Σcos(x+i*b)方程,建立目标函数,且为最小。即 min G

建立目标函数的关键是,使用for循环语句求解G(i)=Σcos(x+i*b),然后用var函数求出G(i)的方差

第二步:根据G≤1.5条件,建立约束函数。建立约束函数的关键是,使用for循环语句求解G(i)=Σcos(x+i*b),使得ΣG(i)≤1.5

第三步:根据 -π/2≤x ≤ π/2 和 n>1,确定x、n的上限和下限值。即VLB=[1,-pi/2],VUB=[100,pi/2]

第四步:使用fmincon函数求出k值(x、n的值)。即[k,fval,exitflag]=fmincon(@(k)myfun(k),x0,[],[],[],[],VLB,VUB,@(k)mycon(k))

第五步:也就是最关键的一步。验证,求出的x、n值,是否满足G≤1.5

按照上述步骤要求,进行编程后运行可得如下结果。

n=3,b=1.6667,G=0.12908

对于函数Sa(t)=sin(x)/x,其中x∈[-10π,10π],matlab中可以这样表示:

x=-10*pi:10*piS=sin(x)补充问题回答:x=-2*pi:pi/10:2*pi表示x∈[-2π,2π];t=0:pi/50:4*pi表示t∈[0,4π];这是由于在matlab中,如果想表示一个范围,比如说x∈[a,b],可以这样表示,x=a:dx:b,代表x从a取到b,每隔dx取一个点。

所以这里的x=-2*pi:pi/10:2*pi,就代表x从-2π取到2π,每隔π/10取一个点。这里pi/10,pi/50就是取的每两个相邻点的间隔。

matlab中八种整数类型的取值范围:

1、int8()取值范围:-128~127。

2、int16()取值范围:-32768~32767。

3、int32()取值范围:-2147483648~2147483647。

4、int64()取值范围:-9223372036854775808~-9223372036854775807。

5、uint8()取值范围:0~255。

6、uint16()取值范围:0~65535。

7、uint32()取值范围:0~4294967295。

8、uint64()取值范围:0~9223372036854775807。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11846761.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存