1

我想问你关于我写的一些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;

我看不到我的错误

任何帮助都会受到赞赏,即使是概率估计的新想法

谢谢

环形

4

1 回答 1

0

1-在标量值上使用长度函数时,它给出 1,然后 for 循环内的值从 10:1-10 变为无意义。(如果您想使用递减步长,您应该提供类似 10:-1:1 的内容)。

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

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

于 2013-02-28T23:17:51.120 回答