Matlab error, can you help?

  • Thread starter bert2002
  • Start date
  • #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
818
67
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
16
0
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.
 

Related Threads on Matlab error, can you help?

  • Last Post
Replies
0
Views
3K
  • Last Post
Replies
3
Views
1K
  • Last Post
Replies
4
Views
4K
  • Last Post
Replies
1
Views
3K
Replies
0
Views
12K
Replies
15
Views
1K
  • Last Post
Replies
1
Views
3K
  • Last Post
Replies
10
Views
2K
  • Last Post
Replies
1
Views
2K
Top