Сумма со значениями из массива в MATLAB - PullRequest
0 голосов
/ 30 апреля 2018

У меня вопрос по суммам в MATLAB с использованием функции symsum.

enter image description here

Я хочу реализовать эту функцию, где ti - это i-ое значение из массива:

t = {2, 5, 6, 10} в качестве примера для n = 4

и U является символической переменной.

это как-то возможно?

syms i, u
t={2, 5, 6, 10}    
symsum((u-i+1)*t{i},i,1,10);

Затем Матлаб дает мне ошибку:

Error using sym/subsindex (line 769)
Invalid indexing or function definition. When defining a function, ensure that the arguments are
symbolic variables and the body of the function is a SYM expression.

Может кто-нибудь мне помочь? Заранее спасибо

Редактировать: измененный пример формулы

1 Ответ

0 голосов
/ 30 апреля 2018

Вы смешиваете числовые вычисления и символические вычисления. Что также написано в сообщении об ошибке:

Аргументы функции должны быть символическими переменными, а тело функции должно быть sym выражение.

t не является символическим выражением, оно является числовым (оно содержит только цифры). Решение состоит в том, чтобы выровнять ваш метод в любом направлении. В данном случае это означает, что для числовой версии символическая индексация не имеет смысла.

Численный

Использовать стандартную сумму (она также самая быстрая):

i = 1:4
syms U0
t = [2, 5, 6, 10];
f(U0) = sum((U0-i+1).*t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...