发布网友 发布时间:2022-04-24 14:47
共1个回答
热心网友 时间:2023-08-30 15:31
其实matlab有一个不为人所关注的地方。基本上所有的编程语言,使用变量前,都需要声明变量,即指定变量的类型;而matlab却不需要人为的去声明变量,在赋值的同时自动完成了变量类型的指定。这么做,并不意味着matlab就没有变量类型这个概念。所有编程语言中,变量类型都是很重要的,matlab也不例外,同一个运算符或函数对不同的变量类型的操作是不一样的。
回到你的问题。其实你注意下你问题中的k和m的变量类型,它们是不一样的:
>> class(m) 这个意思已经很明白了吧。k是双精度型的,而m却是逻辑数据(0或1)。tr_set(m,1)
这个语句就是将m中为“真”对应的数取出来并组成数组。所以你需要记住,数组小括号里面的输入参数,可以是元素的位置,也可以是逻辑数据的舍取。
matlab的这一功能,是非常有用的。例如说,有这样一组曲线,t=[0 1 2 3 4],y=[2 3 1 5 8]。我现在要得到y在2秒以后的结果,那么只需要“y(t>=2)”就得到了。