Matlab error, can you help?

  • #1
16
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)


% Parameters


Yl=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)
 

Answers and Replies

  • #2
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.

Ys1=Ys0/Pm What operator goes here? (1-Av*Tm)-Ps;
 
  • #3
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.
 

Suggested for: Matlab error, can you help?

Comp Sci Truncation Error
Replies
6
Views
701
Replies
1
Views
617
Replies
5
Views
721
Replies
3
Views
447
Replies
10
Views
762
Replies
1
Views
475
Replies
3
Views
652
Back
Top