给定一个域(2D网格)和两行:
D = [-0.99 0.99;-0.99 0.99]; %domain
x = 0.0676 ;
y = 0.7630];
以行给出的行:
pt = [0.0676 0.7630]
在Matlab中找到四个中点的最有效方法是什么?
谢谢
答案 0 :(得分:0)
如果我理解正确的问题,那么你就是想实现这个目标。
这段代码可以做到,你可以通过更好地利用向量和矩阵运算来提高性能,但如果仅仅针对一个问题,那么优化就不值得了。
dlim_x = [-0.99 0.99];
dlim_y = [-0.99 0.99];
x = 0.0676;
y = 0.7630;
domain_vec_x = [dlim_x(1) dlim_x(1) dlim_x(2) dlim_x(2) dlim_x(1)];
domain_vec_y = [dlim_y(1) dlim_y(2) dlim_y(2) dlim_y(1) dlim_y(1)];
line(domain_vec_x, domain_vec_y);
line([x x], dlim_y, 'linestyle', ':');
line(dlim_x, [y y], 'linestyle', ':');
xlim([1.1*dlim_x]);
ylim([1.1*dlim_y]);
hold on;
x1 = mean([dlim_x(1), x]);
x2 = mean([x, dlim_x(2)]);
y1 = mean([dlim_y(1), y]);
y2 = mean([y, dlim_y(2)]);
plot(x1,y1,'^')
plot(x2,y1,'^')
plot(x1,y2,'^')
plot(x2,y2,'^')