Filter löschen
Filter löschen

Problems with matrix dimensions not agreeing

1 Ansicht (letzte 30 Tage)
Yianni
Yianni am 4 Feb. 2015
Beantwortet: Guillaume am 4 Feb. 2015
I am having issues with my matrix dimensions and getting this error in my code:
Error using /
Matrix dimensions must agree.
I used dot arithmatic but that does not seem to be the issue. It seems very simple to fix but I cannot figure out what the problem is. The issue is specifically for the variables "lnY1" and "lnY2". My code is below:
x1 = [0.0374 0.0972 0.3141 0.5199 0.7087 0.9193 0.9591];
%Data from Experimental Results
lny1 = [2.0937 1.6153 0.7090 0.3136 0.1079 0.0002 -0.0077];
lny2 = [0.0220 0.0519 0.2599 0.5392 0.8645 1.3177 1.3999];
%Data from Calculations
x2 = 1-x1;
L12 = 0.124; L21 = 0.523;
lnY1 = -log(x1+(L12*x2))+x2*((L12/(x1+(L12*x2)))-(L21/(x2+(L21*x1))));
lnY2 = -log(x2+(L21*x1))-x1*((L12/(x1+(L12*x2)))-(L21/(x2+(L21*x1))));
plot(x1,lny1,x1,lny2,x1,lnY1,x1,lnY2),grid on
title('Activity Coefficients for Ethanol/Benzene')
xlabel('x_1'),ylabel('y')

Antworten (1)

Guillaume
Guillaume am 4 Feb. 2015
The best way for you to work out the problem would be to try each subexpression on its own and move toward more complex ones if it works.
Anyway, element-wise multiplication is .*, division of scalar by a matrix or element-wise division is ./:
lnY1 = -log(x1+(L12*x2))+x2.*((L12./(x1+(L12*x2)))-(L21./(x2+(L21*x1))));
lnY2 = -log(x2+(L21*x1))-x1.*((L12./(x1+(L12*x2)))-(L21./(x2+(L21*x1))));
If in doubt, and you do mean to operate element-wise, replace each operator +, -, *, /, ^ by its dotted equivalent.

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by