Поверхностный график одинаково разнесенной сетки перекрывающихся гауссиан неправильно строится? - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь построить поверхностный график в Октаве на основе множества перекрывающихся кривых смещения.функция должна обрабатывать x и y одинаково, но я не вижу этого на последнем графике, скорее она имеет гребни, проходящие вдоль одной оси.Я не могу сказать, если это ошибка печати или что-то еще не так с моим кодом.Я надеюсь, что вы можете предоставить некоторую помощь / понимание.

Участок с гребнями по одной оси

Спасибо

clear;
graphics_toolkit gnuplot
V = 2500; %scan speed in mm
rr = 200000; %rep rate in Hz
Qsp = 1; %pulse energy
pi = 3.14159;
ns = 1; %scan number
w = 0.0125; %Gaussian radius in mm
dp = 0.0125; %lateral pulse distance in mm
dh = 0.0125; %hatch pitch in mm
xmax = 0.2; %ablation area x in mm
ymax = 0.2; %ablation area y in mm
np = round(xmax/dp); 
nh = round(ymax/dh);
points = 50;
cof = ns*2*Qsp/(pi*w^2);
N = [0:1:np];
M = rot90([0:1:nh]);
for i = 1:points
   for j = 1:points
    x = (i-1)*xmax/(points-1);
    y = (j-1)*ymax/(points-1);
    k = exp(-(2*(x-N*dp).^2+(y-M*dh).^2)/(w^2));
    H(i,j) = cof*sum(sum(k));
  endfor
endfor
ii = [1:1:points];
jj = ii;
xx = (ii-1)*xmax/(points-1);
yy = (jj-1)*ymax/(points-1);
surf(xx,yy,H);

1 Ответ

0 голосов
/ 25 мая 2018

Я считаю полезным разнести компоненты сложных выражений.

k = exp(-(2*(x-N*dp).^2+(y-M*dh).^2)/(w^2));

Слишком много скобок читать слишком сложно.

k = exp(
         -(
            2*(x-N*dp).^2  +  (y-M*dh).^2
          ) / (w^2)
       );

Вы уже видели это?

k = exp(
         -(
                2 * (x-N*dp).^2  
          +
                    (y-M*dh).^2
          ) / (w^2)
       );

Компонент x умножается на два, а компонент y - нет.

...