problem in defining function in matlab

3 views (last 30 days)
Hi everyone
I have a problem with the code below, in this code i want to write some equations. The problem with defining mu1 how can ii define it, i am new in matlab and i cannot define it.
for i=1:200
for j = 1:9
y{i,j}= CensoredGaussian(mu1(i,j),psi1(j),thd(j,z1(i,j)),thd(j,z1(i,j)+1));
end
mu1{i,1}= {mu.y1(1)+xi1(i,1)};
mu1{i,2}= {mu.y1(2)+lam1(1)*xi1(i,1)};
mu1{i,3}= {mu.y1(3)+lam1(2)*xi1(i,1)};
mu1{i,4}= {mu.y1(4)+lam1(3)*xi1(i,1)};
end
The error is ??? Undefined function or method 'mu1' for input arguments of type 'double'.
Any help would be highly appreciated. many thanks in advance
  1 Comment
Aravind Singh
Aravind Singh on 1 Mar 2015
Add Following code at first line. This will construct a cell array..
mu1 = cell(10,10);
c = cell(m, n) or c = cell([m, n]) creates an m-by-n cell array of empty matrices. Arguments m and n must be scalars.
see help for more info

Sign in to comment.

Accepted Answer

per isakson
per isakson on 1 Mar 2015
Edited: per isakson on 1 Mar 2015
Add
mu1 = cell( 200, 4 );
before the for-loops and read Preallocate Memory for a Cell Array
Next replace
mu1{i,1}= {mu.y1(1)+xi1(i,1)};
by
mu1(i,1)= {mu.y1(1)+xi1(i,1)};
etc. to do what I believe you intended. And read Access Data in a Cell Array
Finally, I would like to ask, why do you use cell arrays in the first place.

More Answers (1)

thanoon younis
thanoon younis on 1 Mar 2015
Edited: per isakson on 1 Mar 2015
Thank you very much for your response. I have now a problem here
for j = 1:9
y1{i,j}= CensoredGaussian(mu1(i,j),psi1(j),thd(j,z1(i,j)),thd(j,z1(i,j)+1));
end
the problem is
??? Error using ==> subsindex
Function 'subsindex' is not defined for values of class 'cell'.
how can i define subsindex using cell
many thanks again
  1 Comment
per isakson
per isakson on 1 Mar 2015
Edited: per isakson on 1 Mar 2015
  • Did you preallocate y1?
  • What does CensoredGaussian return?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!