Как я могу создать символическое целое число для использования с моим преобразованием Фурье? - PullRequest
0 голосов
/ 09 октября 2011

Я вычисляю преобразование Фурье в MATLAB, когда вычисляю коэффициенты C[0] и C[n*f0], я получил довольно неприятный результат, потому что MATLAB не распознает мою переменную "n" как целое число.В настоящее время я вычисляю с "n" в качестве символической переменной (syms n;).Как изменить символическое n на символическое целое число n?

1 Ответ

2 голосов
/ 10 октября 2011

Глядя на документацию MATLAB , чтобы добавить предположение "n является целым числом" в R2008b или позже, вы должны написать

evalin(symengine,'assume(n,Type::Integer)')

Это отвечает на ваш вопрос, однако я не совсем уверен, что это решит вашу проблему.

Когда вы выполняете преобразование Фурье, вы выполняете сложную числовую операцию с вашими данными, следовательно, все переменные, участвующие в этом, должны иметь конкретные значения. Ваш n, вероятно, должен быть целым числом, но не только по типу, он должен содержать фактическое число. Если вы объявите его, используя syms, он потенциально не будет содержать число, так что вы убедитесь, что вам действительно нужен символический набор инструментов !

Если вы это сделаете, и n является результатом вычисления, которое даст одно конкретное целое число, вы можете преобразовать его в обычную числовую форму, используя uint32(n) или аналогичный, см. Справку о преобразованиях например,

Y = fft(X,uint32(n))

Обновление: Сообщение об ошибке, которое вы даете в комментарии, подразумевает, что ваш n на самом деле не является целым числом ... Я сомневаюсь, что вы сможете использовать его с fft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...