如何将数字向量(100x1)转换为0和1的相同维度的向量?

时间:2017-05-07 09:14:44

标签: matlab vector

假设我们有一个数字向量,其维数为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库来实现此目的。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

不要忘记Matlab是一种专门用于矩阵运算的高级编程语言。

一个基本的内置功能是能够使用标量对矩阵执行标量操作,并且您的问题的答案就是一个很好的例子。

可以简单地计算

A=B>t

其中B是输出逻辑矩阵,A是输入数组(可以是实数,复数,整数或逻辑),t是您想要的阈值比较B=是赋值运算符,>是自动将B>t转换为逻辑数组的关系运算符。 >也可以是任何其他关系运算符,即>===<<=~=

注意: t不一定是标量。它可以是大小为m*11*nm*n的矩阵(其中A的大小为m*n)。 B的大小始终为m*n