Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Özgür Alaydin
Özgür Alaydin il 23 Feb 2023
I saw the mistake, thanks for help.
[X,Y]=meshgrid(x,y);
I wrote big X time dependente and problem solved.
Torsten
Torsten il 23 Feb 2023
Modificato: Torsten il 23 Feb 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;

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by