I generate some points with latin hypercube sampling and also by for loop I tried to separate out(i,j) to 4 kinds for plotting .but it only plots like below picture.
4 次查看(过去 30 天)
显示 更早的评论
rng default
LHsampling=lhsdesign(100,5,"criterion","correlation","smooth","off"); %criterion','correlation' give "equal distribution".
for i=1:size(LHsampling,1)
for j=1:size(LHsampling,2)
out(i,j)=(LHsampling(i,j)*2+12*LHsampling(i,j)^2)^3;
if out(i,j)>5
scatter(size(LHsampling,1),out(i,j),'s','r');
hold on;
elseif out(i,j)>50
scatter(size(LHsampling,1),out(i,j),'o','b');
hold on
elseif out(i,j)>100
scatter(size(LHsampling,1),out(i,j),'m','*');
hold on
else
scatter(size(LHsampling,1),out(i,j),'x','g ');
end
end
2 个评论
Torsten
2022-5-20
Although I'm not Star Strider I can tell you that "out" has only 1 column, thus out(:,2) does not exist.
采纳的回答
Walter Roberson
2022-5-21
if out(i,j)>5
scatter(size(LHsampling,1),out(i,j),'s','r');
hold on;
elseif out(i,j)>50
Under what circumstances can out>5 fail but then out>50 succeeds?
Why do you use the number of rows (size) as the x coordinates?
You scatter() once for each point. That is very inefficient.
I recommend that you calculate out once before the loop using vectorized calculations. Then use logical indexing to select all of points in a color range and scatter() all of them at the same time.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Particle & Nuclear Physics 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!