Unable to perform assignment because the left and right sides have a different number of elements.

1 vue (au cours des 30 derniers jours)
there is this error ''Unable to perform assignment because the left and right sides have a different number of elements'' pooping up in my code and need help...thank you
clc; clear; close all;
% PLOTTED IN CGS or SI UNITS
%% Data
qe = 1; %1.6022e-19;
n = 5e16;
E0 = 10*10^3;
m0 = 9.1094e-31;
m = 0.44*m0;
e0 = 1; %8.8542e-12;
ed = 50;
s = 3.5e3;
ue = 1;
eps0 = 1; %8.8542e-12;
h = 4.1356e-15; %6.6261e-34; %
hBar = h/(2*pi());
b = 0.142e-9;
a = 3*b/2/hBar;
tt = 2.6; %*1e-19;
w = 10^12; %(5.7/2); %*1e-19; Bandgap
%% J vs w
figure
linAx = axes('nextplot','add');
col = {'-', '-.', '--'}; %[0,0,1;0.9,0.4,0.17;0,1,0]; % Blue, Orange, Green
%LinSty = ["-", "--", ":"]; % linestyle
delta = 2:0.001:10; %linspace(0,10,100); %
JxL = zeros(size(delta));
i = 0;
for B = 0.1:0.1:0.3
j = 0;
i = i+1;
for Delta = delta
j = j+1;
k = (w/s);
p = 0.525; %-k/2 + (1/a)*asin(hBar*w*G/4/tt^2/sin(k*a/2));
G = sqrt(delta.^2 + 5*tt^2);
v = (-2*tt^2*a*sin(p*a)./G);
t1 = ue*p./(qe.*v);
t2 = t1/2;
wc = qe*B.*v./p;
gamma = 1 + 1i.*wc.*t2;
Sigg = qe^2*n.*v.*t1./p;
Sixx = p^2/(2*pi*hBar^2);
Rixx = 2*p./m./v;
ag = 2*pi*hBar^2*eps0.*v./(qe^2*p);
bF = (k.*v./wc).*1e-9;
Sigxx = 0; Rx = 0;
for l = -3:3
Sigxx = Sigxx + (l*besselj(l,bF)).^2./(1 - 1i*(w-l.*wc).*t1);
Rx = Rx + l*besselj(l,bF).^2/(1 - 1i*(w-l.*wc).*t1);
end
Sigxx = 2*Sixx.*Sigg.*Sigxx./bF.^2;
Rx = Rixx.*wc.*Rx./k;
g = 1 + 1i.*Sigxx./(e0*(ed+1)*(s-Rx));
SxL = 0;
for l = 0:0
SxL = SxL + (besselj(l,bF)./(1-1i.*(w-l.*wc).*t1)).*(l + k.*ag.*Sigxx./(wc.*t1.*eps0.*(s-Rx))).*...
(-1i.*gamma.^2.*(l+1).*besselj(l+1,bF) + 1i.*conj(gamma).^2.*(l-1).*besselj(l-1,bF));
end
C = (1./(2*qe*n.*v)).*abs(Sigg*E0./g).^2.*(((1./bF)./(1 + wc.^2.*t2.^2)).^2);
A = t1.*wc.*p^2./2./pi./hBar;
JxL(j) = C.*A.*real(SxL);
end
plot(linAx,delta,JxL, col{i})
end
Unable to perform assignment because the left and right sides have a different number of elements.
fontSize = 12;
set(groot,'defaultLineLineWidth',1.3)
xlabel(linAx,'\omega_{\it q} (ns^{-1})', 'FontSize', fontSize)
ylabel(linAx,'\it j_{x} (p A/m)', 'FontSize', fontSize)
% title(linAx,'Graphene with an Energy Bandgap') %Linear Dispersion Case
legend(linAx,'B = 0.1 T','B = 0.2 T', 'B = 0.3 T','Location','Best')
%axis auto([-5e-9 25e-9 0e8 2e8 10e8])
set(gca, 'fontsize', 12, 'linewidth', 1.2)
%grid on

Réponse acceptée

Bora Eryilmaz
Bora Eryilmaz le 7 Déc 2022
Modifié(e) : Bora Eryilmaz le 7 Déc 2022
On this line
JxL(j) = C.*A.*real(SxL);
you are trying to assign a vector (C.*A.*...) into a scalar element of the variable JxL(j).

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by