用毁掉失败downsample参数是一个变量。为什么?

5视图(30天)
你好。我使用Matlab2013´m。
我有一个单通道信号存储在一个矩阵,用标准的命令,我可以处理。我用滑翔构建一个简单的GUI与滑块自由变换的信号……到目前为止所有的转换工作。
这个想法是为了增加或减少大量毁灭因素与滑块……这应该很简单,对吧?。嗯,不完全是。
如果我执行这个指令:
NEWSIGNAL =毁掉(原10000);
TimeVector =毁掉(TimeVector, 10000);
它和我downsample te信号10000倍。
然而. .如果我使用一个变量,而不是在第二个参数,例如:
NEWSIGNAL =毁掉(原始、SLIDERVALUE);
TimeVector =毁掉(TimeVector SLIDERVALUE);
出现以下错误消息每次改变滑块的值。
错误使用cheby1(59行)
截止频率必须在(0,1)区间内。
错误在毁掉(第122行)
[b] = cheby1 (nfilt、rip。8 / r);
错误在Lab3 > sumarN_Callback(第217行)
NEWSIGNAL =毁掉(原始,r);
我怀疑SLIDERVALUE的变量类型不是整数,但事实上它是……实际上它一个int16。
为什么毁掉()函数的工作当我使用一个静态整数作为大量毁灭的因素,但没有当我使用一个变量因素? ?
我试图通过手动变量设置为10000,它将正常工作。但是它不会与int16()我从滑块……什么样的演员类型变量是函数期望?
我试着做SLIDERVALUE + 0和SLIDERVALUE / 1作为力更标准的参数类型作为参数…和什么都没有。
最好! !
佩德罗大学el博斯克

答案(1)

佩德罗GUillem
佩德罗GUillem 2017年4月4日
好吧. .我只是回答自己。
如果我这样做
r = 10000;
NEWSIGNAL =毁掉(原始,r)
该方法是可行的,因为“r”变量是作为双auto-declared……我经过一个INT ....图:毁掉的文档()函数显然州downsample因素必须是一个整数。(见附件图片)。
解决方案是这样对我的滑块int值:
r =双(abs (slidervalue));
认真MATLAB帅哥……这个软件是该死的昂贵。所以你做出决定的参数函数需要一个“整数双格式”,或“int格式的整数”:s

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!