Borrar filtros
Borrar filtros

Why do i get error "array have incompatible sizes for this operation error"

1 visualización (últimos 30 días)
Dear all
I have problem with integral. I did not figure out what is wrong.
Please let me know the mistake.
Vb1=0.228;
Rx1=4E-9;
Ry1=4E-9;
Rx2=4E-9;
Ry2=4E-9;
x1=-6E-9;
y1=-6E-9;
x2=6E-9;
y2=6E-9;
w=1E+12; T=2*pi/w;
alfa=1E-9;
for i=1:numel(x)
for j =1:numel(y)
fx = @(t) x(i) + alfa*sin(w.*t);
idx1 =@(t) ((fx(t)-x1)/Rx1).^2 + ((y(j)-y1)/Ry1).^2 < 1;
idx2 =@(t) ((fx(t)-x2)/Rx2).^2 + ((y(j)-y2)/Ry2).^2 < 1;
Vb =@(t) (X<0).*(1-idx1(t))*Vb1 + (X>0).*(1-idx2(t))*Vb1;
V0(i,j) = (1/T).*integral(Vb,0,T);
end
end
Unrecognized function or variable 'x'.
  3 comentarios
Özgür Alaydin
Özgür Alaydin el 23 de Feb. de 2023
I saw the mistake, thanks for help.
[X,Y]=meshgrid(x,y);
I wrote big X time dependente and problem solved.
Torsten
Torsten el 23 de Feb. de 2023
Editada: Torsten el 23 de Feb. de 2023
For clarity, better use
idx1 =@(t) (((fx(t)-x1)/Rx1).^2 + ((y(j)-y1)/Ry1).^2) < 1;
idx2 =@(t) (((fx(t)-x2)/Rx2).^2 + ((y(j)-y2)/Ry2).^2) < 1;
instead of
idx1 =@(t) ((fx(t)-x1)/Rx1).^2 + ((y(j)-y1)/Ry1).^2 < 1;
idx2 =@(t) ((fx(t)-x2)/Rx2).^2 + ((y(j)-y2)/Ry2).^2 < 1;

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by