У меня есть такая функция, которая принимает lnn1c(ii, j, n, n1)
индексирует ii
и jj
в качестве аргументов, где Kdk1
и Wdg
являются некоторыми массивами, wg(n)
другой функция своего рода alpha*(n-3)
и Gdg
является символическим переменным.Возможны ли символические индексирования в Matlab?
function lnn1c=lnn1c(ii, j, n, n1)
syms k1Vzdg
global Gdg Wdg Kdk1
lnn1c=Gdg-i*(-(Wdg(ii)-Wdg(j))+(wg(n)-wg(n1))+...
(Kdk1(ii)-Kdk1(j))*k1Vzdg);
end
Я хочу выступить в моем сценарии суммирования выражения lnn1c(ii, j, n, n1)
над индексами ii
и j
от 1 до 4. я попробовал такой код
syms ii jj n n1
sum(subs(sum(subs(lnn1c(ii, jj, n, n1), ii, 1:4)),jj, 1:4))
, но я получаю такую ошибку
Indexing input must be numeric, logical or ':'.
Любая помощь была бы действительно ценной для меня.
Примечание: создание символических переменных, которые будут возвращены и глобалам * внутри * функция страшная мысль. Все подсказки, которые вам нужно переписать в коде более умным способом, или вы найдете больше проблем. Также обратите внимание, что как 'i' - это мнимая единица, поэтому ее' j'. Написание 'ii', чтобы избежать этого, но затем писать' j' не решает проблему! –