how do i fix "inner matrix dimensions must agree" in this formula?
Mostrar comentarios más antiguos
I am trying to input a number of variables into a formula which are listed in the code below (r=radial coordinate). I have seen other answers covering this same error but still cannot solve it. i have tried using ./ .* etc. in different places but to no avail. Error is: Error using * Inner matrix dimensions must agree.
Error in project2 (line 19) w=(P*rd^4)./(64*K*(1+v))*(2*(3+v).*(1-(r./rd).^2)-(1+v).*(1-(r./rd).^4))
Can anyone advise as to where my mistake is? Thanks.
Code is:
if true
% code
end
function [ w,wmax ] = project2( E,K )
%project2 Function to determine deflection (w) at a certain pressure until
%deflection exceeds wmax.
%
v=0.3; %poissons ratio for all materials
t=0.005; %plate thickness, measured in meters
rd=0.15; %plate radius, measured in meters
for P=0:5000:50000;
wmax=P*(rd^4)*(5+v)/64*K*(1+v);
if wmax<=0.0025;
rad=(0:0.01:0.15);
theta=(0:24:360);
[thm, rm]=meshgrid(theta,rad);
[X,Y]=pol2cart(thm,rm);
r=[X,Y];
w=(P*rd^4)./(64*K*(1+v))*(2*(3+v).*(1-(r./rd).^2)-(1+v).*(1-(r./rd).^4))
else pause
end
end
end
3 comentarios
Adam
el 19 de Nov. de 2014
What is K? E doesn't appear to be used in the formula at all, but when I ran it just putting K = 5 it worked fine. Well, it gave a w full of zeros, but syntactically it was fine.
Mikel lynch
el 19 de Nov. de 2014
Adam
el 19 de Nov. de 2014
Well, yes, you can do plenty of maths with scalars, but as soon as you start passing in matrices or greater dimensionality you have to be very precise with your formula to avoid getting dimension mis-matches for multiplying and dividing.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Resizing and Reshaping Matrices en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!