Can You Help Me Fix this Matlab Error in My Code?

  • Thread starter Thread starter bert2002
  • Start date Start date
  • Tags Tags
    Error Matlab
Click For Summary
SUMMARY

The forum discussion addresses a MATLAB error encountered in a code snippet related to geological modeling. The error arises from incorrect syntax, specifically the use of curly braces {} instead of parentheses () for mathematical operations and the need for element-wise division using the operator './' instead of matrix division. The user is advised to replace '1/B' with '1./B' to resolve the issue. Understanding the distinction between array and matrix operations is crucial for effective MATLAB coding.

PREREQUISITES
  • Familiarity with MATLAB syntax and operations
  • Understanding of array versus matrix operations in MATLAB
  • Basic knowledge of geological modeling concepts
  • Experience with MATLAB plotting functions
NEXT STEPS
  • Learn MATLAB array operations and the significance of the '.' operator
  • Explore MATLAB's cell array functionality and its syntax
  • Study MATLAB plotting techniques for visualizing mathematical models
  • Investigate common MATLAB error messages and their resolutions
USEFUL FOR

Students and professionals in geosciences, MATLAB programmers, and anyone troubleshooting MATLAB code related to mathematical modeling.

bert2002
Messages
16
Reaction score
0

Homework Statement


Hello, i have a MATLAB code that simply lists a bunch of parameters with values and an equation that relates all of them together. I am getting on error that says

Error in ==> randelltest at 17
Ys0=Yl*{(Pm-Pc)*Yc/Yl*(1-Av*Tm/2*Yc/Yl)-Av*Tm*Pm/2}*(1-1/B);

Is there a problem with this syntax somewhere ?

The Attempt at a Solution



Code in full (matlab noob)% ParametersYl=100; % initial lithosphere thickness
Yc=30; % Initial crustal thickness
Pm=3400; % mantle density
Pc=2670; % crustal density
Ps=2670; % basin material density
Av=2.4*10^-5; % volumetric coefficient of thermal expansion
Tm=1300; % mantle temperature at top of asthenosphere
B=(1:0.1:4); % stretching factor

% Equation for fault controlled subsidence

Ys0=Yl*{(Pm-Pc)*Yc/Yl*(1-Av*Tm/2*Yc/Yl)-Av*Tm*Pm/2}*(1-1/B);

Ys1=Ys0/Pm(1-Av*Tm)-Ps;

plot(B,Ys1)
 
Physics news on Phys.org
bert2002 said:
Ys0=Yl*{(Pm-Pc)*Yc/Yl*(1-Av*Tm/2*Yc/Yl)-Av*Tm*Pm/2}*(1-1/B);
The brackets {} have a special meaning related to MATLAB cells, so you should replace them with (). You should also replace '1/B' with '1./B', so you get element-wise, and not matrix, division.

bert2002 said:
Ys1=Ys0/Pm What operator goes here? (1-Av*Tm)-Ps;
 
milesyoung said:
The brackets {} have a special meaning related to MATLAB cells, so you should replace them with (). You should also replace '1/B' with '1./B', so you get element-wise, and not matrix, division.

Thanks for clearing that up, what is the purpose of the "." ? I cleared up the other error you pointed out too.
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
16K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 2 ·
Replies
2
Views
11K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 15 ·
Replies
15
Views
6K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
5
Views
8K
  • · Replies 5 ·
Replies
5
Views
2K