我想问你一些关于我写的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;
我无法看到我的错误
任何帮助即使是具有概率估计的新想法也会受到赞赏
由于
循环
答案 0 :(得分:0)
1-当在标量值上使用长度函数时,它给出1,那么for循环内的值变为10:1-10,这是没有意义的。 (如果你想使用递减步骤,你应该提供类似这样的10:-1:1)。
2-如果你想制作一个大小为4996x1的向量,它将是这样的:零(4996,1)或者那些(4996,1)或者像这样。
3-告诉我们你想要的结果和你的错误....描述对我来说并不明显。