我已经使用此方法添加到其他程序中的数组,但这似乎不起作用。我很困惑,无法找到问题的答案。
错误:
The sample size is: Error using horzcat
CAT arguments dimensions are not consistent.
CalculateElo出错(第14行) playerGroup = [playerGroup r];
代码:
function [accuracy] = CalculateElo (referenceElo , sampleSize, lower, upper)
fprintf('The sample size is: %d', sampleSize);
% Popoulate an new array
playerGroup = [];
playerGroup = [playerGroup referenceElo];
for i=1:(sampleSize - 1)
%Create group size
a = 0;
b = 2000;
r = (b-a).*rand(1000,1) + a;
playerGroup = [playerGroup r];
end
答案 0 :(得分:1)
像[x y]
这样的表达式尝试沿着维度2连接数组x
和y
.Matlab中数组的每一行必须具有相同的长度(类似地,每列必须具有相同的长度)。因此,如果size(x,1)
= size(y,1)
,[x y]
将返回一个大小在第一维上等于size(x,1)
而在第二维上等于size(x,2)+size(y,2)
的数组。否则,您将收到cat
错误,例如您显示的错误。
r
的大小为(1000,1),因此除非referenceElo
的第一维尺寸为1000
,否则会出现cat
错误。
你没有提到referenceElo
的大小,但我猜它是一个单一的数字。您可以使用'
(转置)运算符来编写
playerGroup = [playerGroup r'];
返回一个大小为(1,1001)的数组。或者您可以使用形式为[x;y]
的表达式,该表达式沿着维度1连接:
playerGroup = [playerGroup;r];
返回一个大小为(1001,1)的数组。