creating algorithm for specific computation

3 visualizaciones (últimos 30 días)
sermet
sermet el 19 de Sept. de 2018
Comentada: Guillaume el 19 de Sept. de 2018
I need to perform below computation using algorithm approach.
t=100; % constant et=1:1:4; % the numbers of "et" are variable.
result=(((t-et(2))*(t-et(3))*(t-et(4)))/((et(1)-et(2))*(et(1)-et(3))*(et(1)-et(4))))+(((t-et(1))*(t-et(3))*(t-et(4)))/((et(2)-et(1))*(et(2)-et(3))*(et(2)-et(4))));
How can I create algorithm to perform above computation automatically with respect to the array number of et?

Respuesta aceptada

Guillaume
Guillaume el 19 de Sept. de 2018
If I understood correctly:
numerators = t - repmat(et(:), 1, numel(et)); %calculate t-et(1), t-et(2), etc.
numerators(logical(eye(size(numerators)))) = 1; %replace t-et by 1 on diagonal
numerators = prod(numerators);
denominators = et - et';
denominators(logical(eye(size(denominators)))) = 1;
denominators = prod(denominators);
result = sum(numerators ./ denominators);
However, the result of this is always going to be 1. So
result = 1;
may be simpler.
  2 comentarios
sermet
sermet el 19 de Sept. de 2018
Editada: sermet el 19 de Sept. de 2018
I got "Matrix dimensions must agree" error for denominators = et - et'; line
Guillaume
Guillaume el 19 de Sept. de 2018
That would be because you're using an ancient version of matlab (< R2016b). In older versions:
denominators = bsxfun(@minus, et, et');

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by