我将从间隔(x has 10 dimentions
)([-10,10]^10
)中的预定义函数生成4000个样本(f5 =@(x) 5*x(1)- 6*x(3)+x(4)^2+x(8)*x(10)
)
如何在Matlab中做到这一点?实际上,我认为我应该适应所有方面。
非常感谢您可以提供的帮助
答案 0 :(得分:0)
您可以使用以下方法在范围内生成一定的兰德x
:
nums = rand(4000,10); % between zero to one
% If "x" in "[0,1]", "(b-a)*x + a" would be in "[a,b]"
nums = 20*nums - 10; % between -10 to 10
,然后将该函数应用于nums:
I = 1:size(nums,1);
F = @(i) f5(nums(i,:));
vals = arrayfun(F, I.');