Operator '.^' is not supported for operands of type 'cell'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
M
el 31 de Jul. de 2022
Comentada: Star Strider
el 1 de Ag. de 2022
Hi, I wanted to plot lambda which is defined in the code below, but it has an error: Operator '.^' is not supported for operands of type 'cell'.
Could you please tell me how solve this problem and plot lambda?
vplc=0.25;delta=2.5;tau_max=44000;Ktau=0.045;
kc=0.1; kh=0.05;Vp=0.9;K=0.000015;kp=0.15;gamma=5.5;kb=0.4;vss=0.044;
Vpm=0.000159;Kpm=0.15;alpha0=.00000681;alpha1=0.0000227;Ke=7;Vs=0.002;ks=0.1;
Kf=0.18;kplc=0.055;ki=2;gamma=5.5;kipr=0.18;
[c,ct]=meshgrid(0:0.005:1);
p=(vplc./ki).*(c.^2./((kplc).^2+c.^2));
A=(-(vss.*c.^2)./(ks.^2))+((Vs.*K.*gamma.^2.*ct.^2)./(Ktau.^4.*ks.^2))+alpha0+alpha1.*((Ke.^4)./(Ke.^4+(gamma.*ct).^{4}));
h=(-2.*Kc.^2.*Kp^2.*A)./(5.*c.^4.*ct.*gamma.*Kf.*p.^2.*((a.*A)./(5.*ct.*gamma.*Kf))-1);
Po=(p.^2.*c.^4.*h)./(kb.*p.^2.*c.^4.*h+kb.*kp.^2.*kc.^2);
lambda=Kf.*gamma.*ct.*((10.*c.^3.*p.^2.*h.*(c.^4*p.^2.*h+kp.^2.*kc.^2-c.^4.*p.^2.*h))./(c.^4*p.^2.*h+kp.^2.*kc.^2).^2)-(2.*vss.*c/ks.^2);
surf(c,ct,lambda);
0 comentarios
Respuesta aceptada
Star Strider
el 1 de Ag. de 2022
The original problem was caused by using curly brackets {} around the 4:
A=(-(vss.*c.^2)./(ks.^2))+((Vs.*K.*gamma.^2.*ct.^2)./(Ktau.^4.*ks.^2))+alpha0+alpha1.*((Ke.^4)./(Ke.^4+(gamma.*ct).^{4}))
↑ ↑ ← HERE
Also, MATLAB is case-sensitive, so ka~=Ka, a~=A and other instances.
Also, please make your code easier to read. Bunching up several assignments does not make the code more efficient (it might make it less efficient), and it definitely does make it more difficult to read and troubleshoot.
With those (and similar) corrections, this is the result —
vplc=0.25;
delta=2.5;
tau_max=44000;
Ktau=0.045;
Kc=0.1;
kh=0.05;
Vp=0.9;
K=0.000015;
Kp=0.15;
gamma=5.5;
kb=0.4;
vss=0.044;
Vpm=0.000159;
Kpm=0.15;
alpha0=.00000681;
alpha1=0.0000227;
Ke=7;
Vs=0.002;
ks=0.1;
Kf=0.18;
kplc=0.055;
ki=2;
gamma=5.5;
kipr=0.18;
[c,ct]=meshgrid(0:0.005:1);
p=(vplc./ki).*(c.^2./((kplc).^2+c.^2));
A=(-(vss.*c.^2)./(ks.^2))+((Vs.*K.*gamma.^2.*ct.^2)./(Ktau.^4.*ks.^2))+alpha0+alpha1.*((Ke.^4)./(Ke.^4+(gamma.*ct).^4));
h=(-2.*Kc.^2.*Kp^2.*A)./(5.*c.^4.*ct.*gamma.*Kf.*p.^2.*((A.*A)./(5.*ct.*gamma.*Kf))-1);
Po=(p.^2.*c.^4.*h)./(kb.*p.^2.*c.^4.*h+kb.*Kp.^2.*Kc.^2);
lambda=Kf.*gamma.*ct.*((10.*c.^3.*p.^2.*h.*(c.^4*p.^2.*h+Kp.^2.*Kc.^2-c.^4.*p.^2.*h))./(c.^4*p.^2.*h+Kp.^2.*Kc.^2).^2)-(2.*vss.*c/ks.^2);
figure
surf(c,ct,lambda, 'EdgeColor','none')
I have no idea what you are doing, so I defer to you for whatever else needs to be done to get a reasonable result.
.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations 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!