MATLAB Answers

0

how to solve equation for a given matrix

Asked by engineer on 23 May 2019 at 12:56
Latest activity Commented on by Adam Danz
on 23 May 2019 at 20:08
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 Comments

Ah sorry which variable are you the solving for?, you say you already have e in hand?
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?

Sign in to comment.

1 Answer

Answer by Adam Danz
on 23 May 2019 at 15:43
 Accepted Answer

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 Comments

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{:});
Besides, how do you save the each x variable within loop in the code you provided?
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.

Sign in to comment.