problem in defining function in matlab

2 次查看(过去 30 天)
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 个评论
Aravind Singh
Aravind Singh 2015-3-1
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

请先登录,再进行评论。

采纳的回答

per isakson
per isakson 2015-3-1
编辑:per isakson 2015-3-1
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.

更多回答(1 个)

thanoon younis
thanoon younis 2015-3-1
编辑:per isakson 2015-3-1
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

Community Treasure Hunt

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

Start Hunting!

Translated by