Error Matrix dimensions must agree
1 view (last 30 days)
Show older comments
I am getting "Matrix dimensions must agree" error while running the following codings in MatLab. From the first two equations I am getting error because of exp(f.*phi) part. If I remove this part, the code works fine. But I need to add this in both equations. In the last equation I am getting error due to the factor_c part. Could someone help me correcting the mistakes? Thanks
function myfunction
n=0;Ef=40*10^6;df=0.014;rou=3*10^6;S=0:600;f=0.5;phi=0:0.01:pi/2;Le=2;Vf=0.02;
P_friction=(pi/2)*sqrt((1+n)*Ef*df^3*rou*S).*exp(f.*phi);
Pslip=pi*rou*Le*df*(1-S/Le)*exp(f.phi);
factor_a=(4*Vf/(pi*df^2));
factor_b=Pslip.*P_friction;
factor_c=p_phi*p_z;
sigmab=factor_a.*factor_b.*factor_c;
end
0 Comments
Accepted Answer
Star Strider
on 5 Jul 2017
First, you need an operator here, I assume multiplication:
Pslip=pi*rou*Le*df*(1-S/Le)*exp(f.*phi);
↑ ← INSERT ‘*’ HERE
What are ‘p_phi’ and ‘p_z’ here:
factor_c=p_phi*p_z;
I do not see where you have defined them, and your function does not have any arguments. A function file will not pick up variables from your workspace as an anonymous function would.
4 Comments
Star Strider
on 5 Jul 2017
If you want all the vectors to be the same lengths, you will have to define ‘z’ as:
z = bsxfun(@rdivide, [0:Lf]', 2*cos(phi));
p = 2*z/Lf;
This creates a (3x100) matrix for ‘p’.
You cannot use 0 as a subscript. In MATLAB, indexing begins with 1.
More Answers (1)
KSSV
on 5 Jul 2017
Your S and phi should be arrays with equal dimensions. In your code they are not same. You need to proceed like below.
N = 100 ; % can be changed
n=0;
Ef=40*10^6;
df=0.014;
rou=3*10^6;
S = linspace(0,600,N) ;% S=0:600;
f=0.5;
phi = linspace(0,pi/2,N) ;% phi=0:0.01:pi/2;
Le=2;
Vf=0.02;
P_friction=(pi/2)*sqrt((1+n)*Ef*df^3*rou*S).*exp(f*phi);
Pslip=pi*rou*Le*df*(1-S/Le).*exp(f*phi);
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!