MATLAB matrix using in function

I can't use matrix in my functions. Can you help me?
u=symunit;
M=7.75*u.cm
R=2.54*u.m
a_ef=10:10:100
deltap=-7.55*(M^2/R^2)*(1/(0.116+log(R/2.405*a_ef)))
Error using symengine
Invalid operands.
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in / (line 382)
X = privBinaryOp(A, B, 'symobj::mrdivide');

Réponses (2)

Steven Lord
Steven Lord le 16 Nov 2020

0 votes

Use element-wise division for the operations that will operate on the vector a_ef.
deltap=-7.55*(M^2/R^2)*(1./(0.116+log(R./2.405*a_ef)));
The first division, M^2/R^2, is dividing two scalars so ./ is not required (but it would work.)

2 commentaires

Problem isn't solved.
u=symunit;
M=7.75*u.cm
R=2.54*u.m
a_ef=(10:10:100)*u.mm
deltap=-7.55*((M^2)/(R^2))*(1/(0.116+log((R)/2.405*a_ef)))
Error using symengine
Invalid operands.
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in / (line 382)
X = privBinaryOp(A, B, 'symobj::mrdivide');
Steven Lord
Steven Lord le 16 Nov 2020
Modifié(e) : Steven Lord le 16 Nov 2020
You did not replace / with ./ in the last line. When I do I can run it. If this resolves the problem please delete your flag and accept the answer. Thanks.
u=symunit;
M=7.75*u.cm;
R=2.54*u.m;
a_ef=(10:10:100)*u.mm;
deltap=-7.55*((M^2)/(R^2))*(1./(0.116+log((R)./2.405*a_ef)));
deltap(1)
ans = 
simplify(deltap(1))
ans = 

Connectez-vous pour commenter.

Mehmet SARIARSLAN
Mehmet SARIARSLAN le 16 Nov 2020

0 votes

All my code
u=symunit;
M=7.75*u.cm
R=2.54*u.m
a_ef=(10:10:100)*u.mm
deltap=-7.55*((M^2)/(R^2))*(1/(0.116+log((R)/2.405*a_ef)))
%plot(deltap,a_ef)
M =
R =
a_ef =
Error using symengine
Invalid operands.
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in / (line 382)
X = privBinaryOp(A, B, 'symobj::mrdivide');

Catégories

En savoir plus sur Mathematics and Optimization dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by