matlab中tr_set(m,1) 其中tr_set和m是一个数组,这是什么意思?

发布网友 发布时间:2022-04-24 14:47

我来回答

1个回答

热心网友 时间:2023-08-30 15:31

  其实matlab有一个不为人所关注的地方。基本上所有的编程语言,使用变量前,都需要声明变量,即指定变量的类型;而matlab却不需要人为的去声明变量,在赋值的同时自动完成了变量类型的指定。这么做,并不意味着matlab就没有变量类型这个概念。所有编程语言中,变量类型都是很重要的,matlab也不例外,同一个运算符或函数对不同的变量类型的操作是不一样的。

  回到你的问题。其实你注意下你问题中的k和m的变量类型,它们是不一样的:

>> class(m)
ans =
logical
>> class(k)
ans =
double

  这个意思已经很明白了吧。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)”就得到了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com