【问题标题】:How to convert a vector of numbers (100x1) into a vector of 0's and 1's of the same dimension?如何将数字向量 (100x1) 转换为相同维度的 0 和 1 向量?
【发布时间】:2017-05-07 09:14:44
【问题描述】:

假设我们有一个维数为 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 的内置库。有人可以帮忙吗?

【问题讨论】:

  • Bin_matrix=Input_matrix>=threshold_value
  • 这有什么意义?
  • 嗯,它确实奏效了。但是如何?
  • 非常感谢!!!!您可以将您的评论转化为答案。

标签: matlab vector


【解决方案1】:

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

一个基本的内置功能是能够对带有标量的矩阵执行标量运算,您的问题的答案就是一个很好的例子。

一个人可以简单地计算

A=B>t

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

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

【讨论】:

  • 在我的代码中我做了这样的事情' q = 1./(1+exp(-(X*theta))) ; p(:,1)=q(:,1)>=0.5 ' 其中 p 是输出矩阵,而 q 是输入矩阵。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2017-01-03
  • 2021-10-31
相关资源
最近更新 更多