添加到阵列时出错

时间:2015-02-26 03:38:57

标签: arrays matlab

我已经使用此方法添加到其他程序中的数组,但这似乎不起作用。我很困惑,无法找到问题的答案。

错误:

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

1 个答案:

答案 0 :(得分:1)

[x y]这样的表达式尝试沿着维度2连接数组xy .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)的数组。