Hi everybody
I have got equation which is ;
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2);
e is a 100*1 double matrix.
I would like to use the value of each row as an input to my function and save the results as matrix again. I used solve command, I could get any results.
Any suggestion is highly appreciated.
Thanks!!

댓글 수: 5

madhan ravi
madhan ravi 2019년 5월 23일
just loop through e and solve the equations?
engineer
engineer 2019년 5월 23일
thanks for the answer. Can you show or refer me an axample ?
madhan ravi
madhan ravi 2019년 5월 23일
Ah sorry which variable are you the solving for?, you say you already have e in hand?
engineer
engineer 2019년 5월 23일
Yes I have it 'e' as 100*1 double matrix. I just need to implement each value into the function and obtain the results as another matrix.
e = .... 100 X 1 values
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2); % doesn't this get you the required results?

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

 채택된 답변

Adam Danz
Adam Danz 2019년 5월 23일

0 개 추천

What's wrong with what you've already got?
%Vector method
e = rand(100,1)*10;
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2);
% Loop method
Eq2 = zeros(size(e));
for i = 1:numel(e)
Eq2(i) = 0.4075*exp(-((e(i)-14.87)/11.39).^2) + 0.5621*exp(-((e(i)-18.64)/27.74).^2);
end
% Are they equal?
isequal(Eq,Eq2) % = 1; yes

댓글 수: 11

engineer
engineer 2019년 5월 23일
it worked, thank you very much.
engineer
engineer 2019년 5월 23일
I have one more question. my matrix 'e' is not in the x axis. It is actually in the y axis. How can I implement my matrix in y axis and find the corresponding X axis and save it as a matrix?
Adam Danz
Adam Danz 2019년 5월 23일
I'm sorry, I don't follow the question. What do you mean by x axis and y axis?
engineer
engineer 2019년 5월 23일
matrix 'e' is output for the function. Therefore, I would like to find the input matrix.
For example:
a = [2;5;7]
a(i) = 2x+5
in this case the answer :
x =[9;15;19]
I hope it is clearer now.
But 'e' is an input variable in your example. Eq is the output.
Do you mean you're trying to solve for this:
e = 0.4075*exp(-((x-14.87)/11.39).^2) + 0.5621*exp(-((x-18.64)/27.74).^2);
where x is unknow and e is known?
engineer
engineer 2019년 5월 23일
yes, exactly.
engineer
engineer 2019년 5월 23일
any suggestion? , I got really stucked here?
Try this out
syms x
for i = 1:numel(e)
sol(i) = solve(0.4075*exp(-((x-14.87)/11.39).^2) + 0.5621*exp(-((x-18.64)/27.74).^2) == e(i));
end
I received this error.
Warning: Unable to find explicit solution. For options, see help.
> In solve (line 317)
Subscripted assignment dimension mismatch.
Error in sym/privsubsasgn (line 1107)
L_tilde2 = builtin('subsasgn',L_tilde,struct('type','()','subs',{varargin}),R_tilde);
Error in sym/subsasgn (line 944)
C = privsubsasgn(L,R,inds{:});
engineer
engineer 2019년 5월 23일
편집: engineer 2019년 5월 23일
Besides, how do you save the each x variable within loop in the code you provided?
Adam Danz
Adam Danz 2019년 5월 23일
sol(i) is the x values that satisfy the function. If you search for that warning within this forum you get lot's of feedback.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

질문:

2019년 5월 23일

댓글:

2019년 5월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by