필터 지우기
필터 지우기

Matrix dimension must agree problem

조회 수: 1 (최근 30일)
Asir Tushar
Asir Tushar 2018년 12월 7일
댓글: Asir Tushar 2018년 12월 8일
I have run the code on octave which gives the following plot.
When I tried the same code on Matlab , there was a dimension mismatch on line starting with "d1" . I think this is because of broadcasting. Anyone knows how to fix it ?
m=6;
n=61;
S0=70;
S1=130;
K=100;
r=.12;
T=1.0;
sigma=0.10;
time=transpose(linspace(T,0,m))
S=linspace(S0,S1,n);
d1=(log(S/K)+(( r + (sigma.^2)/2)*(T-time)))./(sigma*sqrt(T - time)); %(problem in this line)
d2=(log(S/K)+(( r - (sigma.^2)/2)*(T-time)))./(sigma *sqrt(T - time));
part1=bsxfun ( @times , normcdf ( d1 ) , S ) ;
part2=bsxfun ( @times , K *exp( - r *( T - time ) ) , normcdf ( d2 ) ) ;
VC = part1 - part2
plot(S,VC)

채택된 답변

madhan ravi
madhan ravi 2018년 12월 7일
To be honest I didn't get any errors,
Try clear all at the very beginning of your code and try again.
Screen Shot 2018-12-07 at 11.40.00 PM.png
  댓글 수: 3
madhan ravi
madhan ravi 2018년 12월 8일
편집: madhan ravi 2018년 12월 8일
2018b you? post the complete error message you get everything in red , alright turns out that you are using version prior to 2016b so use bsxfun() with rdivide for ./ and times for * appropriately.
Asir Tushar
Asir Tushar 2018년 12월 8일
I am using an older version .
Error using +
Matrix dimensions must agree.
Error in Thesis (line 13)
d1=(log(S/K)+(( r + (sigma.^2)/2)*(T-time)))./(sigma*sqrt(T - time)) ;

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by