我正在计算MATLAB中的傅里叶变换,当计算系数C[0]
和C[n*f0]
时,我得到了非常讨厌的结果,因为MATLAB不能将我的变量“n”识别为整数。我目前使用“n”作为符号变量(syms n;
)进行计算。如何将符号n
更改为符号整数n
?
答案 0 :(得分:2)
查看MATLAB documenation,在R2008b或更高版本中添加“n
为整数”的假设,您必须编写
evalin(symengine,'assume(n,Type::Integer)')
这回答了你的问题,但是,我不确定它能解决你的问题。
当您进行傅里叶变换时,您正在对数据执行大量数字运算,因此所涉及的所有变量都需要具有具体值。你的n
可能应该是一个整数,但不仅仅是类型,它应该包含一个实际的数字。如果您使用syms
声明它,它可能不包含一个数字,因此您确定您确实需要符号工具箱!
如果你这样做,并且n
是产生一个特定整数的计算结果,你可以使用uint32(n)
或类似的方法将其转换为正常的数字形式,请参阅help on conversions,例如
Y = fft(X,uint32(n))
更新:您在评论中提供的错误消息暗示您的n
实际上不是整数...我怀疑您是否可以将其与fft一起使用。