for i =1:4
a(i,:) = rand(1,4);
end
这样就好了
原来是使用rand的,但这样取整的时候容易出现重复的整数,所以才改成上面写的,然后就报错了
@咖喱free: 那这样就可以了
for i =1:4
a(i,:) = randperm(999,4);
end
a
a =
554 42 800 669
201 15 761 566
654 634 733 884
666 121 712 446
@BUTTERAPPLE:
D = 4;
Xmax = 500*ones(1,D);
Xmin = ones(1,D);
N = 50;
for i = 1:N
a = Xmax - Xmin;
X(i,:) = Xmin + randperm(a,D);
end
奇怪了,但是这样就不行,又继续报错:
错误使用 randperm
输入必须为非负标量整数。
出错 main (line 10)
X(i,:) = Xmin + randperm(a,D);
@咖喱free: 你这里的a
是个 1X4 阶的矩阵,当然不能放在 randperm 里面啦,你把
X(i,:) = Xmin + randperm(a,D);
换成 X(i,:) = Xmin + randperm(a(1),D);
这就可以了
@BUTTERAPPLE: 啊,原来是这里错了,谢谢你~