Subscripted assignment dimension mismatch error question

2 次查看(过去 30 天)
Hi,
I understand that this error comes into play when vectors/matrices don't line up, but I'm not exactly sure how to fix this, as I am pretty new to Matlab. My code is below. Basically I am looking to solve a Bellman equation...I have 2 continuous action/control variables and 1 continuous state variable. The first "case" sets up the bounds of the control/action variable. The second "case" looks at the value function with the first derivatives in the respective columns and the second derivatives off the respective pages. This error I get is on "out2(:,1)=1./c;". Does anyone have any suggestions? Thank you in advance.
if
function [out1,out2,out3] = func(flag,s,x,e,alpha,c,leisure)
n = size(s,1); %returns number of rows
ds = 1; %defines number of continuous state variables
dx = 2; %defines number of continuous action/control variables
switch flag
case 'b'
out1 = zeros(size(s)); %outputs zeros for the vector "s"
out2 = s; %outputs value of "s"...cannot exceed state variable
case 'f'
out2 = zeros(n,dx); %outputs zeros for the n by dx matrix, n is scalar
out3 = zeros(n,dx,dx); %outputs zeros for the dx-th page (3 dimensions)
out1 = log(c) + alpha*log(leisure) %value function
out2(:,1) = 1./c; %first derivative wrt c
out2(:,2) = alpha./leisure %first derivative wrt leisure
out3(:,1,1) = -1./c.^2 %second derivative wrt c
out3(:,2,2) = -alpha./leisure.^2 %second derivative wrt leisure
case 'g'
out2 = zeros(n,ds,dx); %outputs zeros for page of first derivatives
out3 = zeros(n,ds,dx,dx);%outputs zeros for page of second derivatives
out1 = s - c - leisure %level of state equation
out2(:,1,2) = -ones(n,1);%derivative of state equation wrt c
out2(:,2,2) = -ones(n,1);%derivative of state equation wrt leisure
end
Thank you, Brian

回答(1 个)

John Petersen
John Petersen 2012-12-14
Maybe c is a row vector so it doesn't match the dimensions of out2(:,1) which is a column vector.

Community Treasure Hunt

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

Start Hunting!

Translated by