假设我们有一个数字向量,其维数为100x1,其值为X'= [0.93 0.45 0.36 0.88 .................]。我想将它转换为基于阈值的0和1的100x1向量,使得任何大于或等于0.5的数字替换为1,小于0.5的数字替换为0. 0和1的向量应该看起来这样的东西A'= [1 0 0 1 .................]。我想尽可能以最短的方式做到这一点,甚至没有使用循环。我希望能够使用内置的matlab库来实现此目的。有人可以帮忙吗?
答案 0 :(得分:0)
不要忘记Matlab是一种专门用于矩阵运算的高级编程语言。
一个基本的内置功能是能够使用标量对矩阵执行标量操作,并且您的问题的答案就是一个很好的例子。
可以简单地计算
A=B>t
其中B
是输出逻辑矩阵,A
是输入数组(可以是实数,复数,整数或逻辑),t
是您想要的阈值比较B
。 =
是赋值运算符,>
是自动将B>t
转换为逻辑数组的关系运算符。 >
也可以是任何其他关系运算符,即>=
,==
,<
,<=
或~=
。
注意:
t
不一定是标量。它可以是大小为m*1
,1*n
或m*n
的矩阵(其中A
的大小为m*n
)。 B
的大小始终为m*n
。