【问题标题】:vector comparison and new assignment向量比较和新赋值
【发布时间】:2013-02-09 17:08:20
【问题描述】:

我想问你关于我写的一些matlab代码的问题,但首先告诉你我的问题。我有 2 个向量,测试标签和预测标签,出于分类原因,我想比较它们。此外,我想分配一些新的标签。所以我有类似 111121111 = 1 或 1122222222 =2 我想要实现的东西。我的代码是

y = [];
for k = 10:length(predictedLabel)-10
    y = [y; newlabel(predictedLabel, k, 5)];
end

而函数newlabel是

function [nl] = newlabel(x, n, L)
   numClasses = 3;
   x1 = x(n-L:n+L);
   c = zeros(numClasses, 1);
   for k=1:length(x1)
     c(x1(k)) = c(x1(k))+1;
   end
  [~,nl]=max(c);
end

我现在的问题是我的结果遵循向量长度

 predictedLabel = 4996*1;
 k=4986*1;
 y=4977*1;

我看不到我的错误

感谢任何帮助,即使是概率估计的新想法

谢谢

循环

【问题讨论】:

  • 你的问题是长度?你希望他们能坚持多久?有这个维度是正常的,因为对于 y,您使用 10 的负填充,对于 5 的 k。
  • 也许你不仅可以解释你得到了什么,还可以解释你期望的变量是什么(以及为什么)。
  • 我想要一个等长的向量。但我真正想要的是对两个向量进行比较的某种最大先验测量。就像我在上面描述的那样。问题是我不知道如何编程。

标签: matlab classification labels


【解决方案1】:

1- 当对标量值使用长度函数时,它给出 1,然后 for 循环内的值变为 10:1-10,这是没有意义的。 (如果你想使用递减步长,你应该提供这样的 10:-1:1)。

2- 如果你想创建一个大小为 4996x1 的向量,它会是这样的: zeros(4996,1) or one(4996,1) or sth like this。

3- 告诉我们你想要的结果和你的错误......描述对我来说并不明显。

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 2013-08-05
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2018-04-13
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多