【问题标题】:Matlab: Classify random vector w.r.t. equally spaced vector of different sizeMatlab:对随机向量进行分类 w.r.t.不同大小的等距向量
【发布时间】:2020-01-04 10:36:15
【问题描述】:
A=[0.1, 0.3, 0.8, 0.9, 1]; % generated by random numbers, these are representative values. A can take any value.
B=0:1/10:1; % 10 divisions to divide line element

A 始终是随机产生的向量,B 是固定向量。 A 的值将与 B 的值进行比较。将修改 A,如果值属于 B 的类,则将其保留在该类中,否则分配零。

预期的输出是

A=[0.1,0,0.3,0, 0, 0, 0, 0.8,0.9,1.0]; % Size of A increases here.

【问题讨论】:

  • A 是否仅从与 B 相同的集合中随机选择?也就是说,.15 是不允许的?是否允许在 A 中重复?
  • 你的意思是B=0:1/9:1,还是B=0:1/10:1?否则我看不到逻辑

标签: matlab range classification histogram member


【解决方案1】:

我想你想要

result = B.*ismembertol(B,A,1e-6);

这会保留与A 的某些条目非常接近的B 条目,并使其余条目为零。

请注意,我说“非常接近”(并使用ismembertol)而不是“等于”(对应于ismember),否则您可能会因为数值精度而得到误报。参数1e-6 是一个相对容差,您应该根据自己的需要进行选择。

【讨论】:

  • @user9003011 它不匹配,因为我仍然无法得到你想要的逻辑(这就是我写“我认为你想要......”的原因) : 为什么B 中的0 没有出现在输出中?
猜你喜欢
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多