Subscripted assignment dimension mismatch error question

조회 수: 2 (최근 30일)
Brian Batson
Brian Batson 2012년 12월 14일
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.

카테고리

Help CenterFile Exchange에서 Correlation and Convolution에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by