How to make a summation with index vector?

3 vues (au cours des 30 derniers jours)
Adriano
Adriano le 11 Mai 2018
Modifié(e) : Guillaume le 11 Mai 2018
Hi! I need to solve this summation in Matlab:
where N is a constant and s is a matrix YxN. I tried to use symsum function but I can't index the s matrix. Anyone can help me? Many thanks!
  3 commentaires
Walter Roberson
Walter Roberson le 11 Mai 2018
If s is Y x N then what is s subscript t ?
Adriano
Adriano le 11 Mai 2018
Modifié(e) : Adriano le 11 Mai 2018
Sorry the matrix is a TxN. I'm working with a time serie so that the row is usually indicated with t. Suppose I have a matrix like:
s = [1 2; 3 4; 5 6] where N = size(s,2)
I need to create a vector Z in which the first element is:
value_1_1 = (1*s(1,1) - (1/N)) + (2*s(1,2) - (2/N));
the second one is:
value_2_1 = (1*s(2,1) - (1/N)) + (2*s(2,2) - (2/N));
and so on. Obviously in the reality the s matrix is a very large matrix so that I need a simple way to calculate it.

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 11 Mai 2018
Modifié(e) : Guillaume le 11 Mai 2018
I need to create a vector Z in which the first element is:
col = 1:size(s, 2);
Z = sum(col .* s - col/N, 2); %requires R2016b or later
Note that the sum 1/N + ... N/N could be extracted from the formula since it's a constant equal to (N+1)/2, so a simplification of the above would be:
Z = sum(col .* s) - (size(s, 2)+1)/2;

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by