problem in defining function in matlab

1 view (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.

Categories

Find more on Performance and Memory in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!