Глядя на документацию MATLAB , чтобы добавить предположение "n
является целым числом" в R2008b или позже, вы должны написать
evalin(symengine,'assume(n,Type::Integer)')
Это отвечает на ваш вопрос, однако я не совсем уверен, что это решит вашу проблему.
Когда вы выполняете преобразование Фурье, вы выполняете сложную числовую операцию с вашими данными, следовательно, все переменные, участвующие в этом, должны иметь конкретные значения. Ваш n
, вероятно, должен быть целым числом, но не только по типу, он должен содержать фактическое число. Если вы объявите его, используя syms
, он потенциально не будет содержать число, так что вы убедитесь, что вам действительно нужен символический набор инструментов !
Если вы это сделаете, и n
является результатом вычисления, которое даст одно конкретное целое число, вы можете преобразовать его в обычную числовую форму, используя uint32(n)
или аналогичный, см. Справку о преобразованиях например,
Y = fft(X,uint32(n))
Обновление: Сообщение об ошибке, которое вы даете в комментарии, подразумевает, что ваш n
на самом деле не является целым числом ... Я сомневаюсь, что вы сможете использовать его с fft.