Matlab/Simulink数据存储内存错误:“Simulink没有足够的信息来确定此块的输出大小”
我在matlabs simulink上遇到了一个问题,我已经为这个简单的任务奋斗了一个多小时,但我不知道出了什么问题。 我有一个matlab函数calc_fft,我有一个恒定的目标频率。我不想在函数块中写入此常量。相反,我希望它在一个数据存储内存块 在下图中,您可以看到我的设置/配置。 我只想在这个数据存储内存块中有一个数字,例如440 在matlab函数块中,有如下内容Matlab/Simulink数据存储内存错误:“Simulink没有足够的信息来确定此块的输出大小”,matlab,constants,simulink,Matlab,Constants,Simulink,我在matlabs simulink上遇到了一个问题,我已经为这个简单的任务奋斗了一个多小时,但我不知道出了什么问题。 我有一个matlab函数calc_fft,我有一个恒定的目标频率。我不想在函数块中写入此常量。相反,我希望它在一个数据存储内存块 在下图中,您可以看到我的设置/配置。 我只想在这个数据存储内存块中有一个数字,例如440 在matlab函数块中,有如下内容 function [y,mx,amp] = fcn(u) global targetFrequency; t
function [y,mx,amp] = fcn(u)
global targetFrequency;
target = targetFrequency;
...
每次我尝试运行模型时,下图中显示的错误都会显示出来
我做错了什么?有什么建议吗?targetFrequency似乎没有正确初始化。在这个小代码段中,您将它定义为全局的,然后在初始化为某个对象之前立即使用它。您似乎也没有在MATLAB函数中指定其大小,将其设置为-1或在数据故事中相同。感谢您的回答-如果现在解决了,问题是,我正在剥离此函数中的数组数组0:n,我认为0不是数组的可行索引,因为我发现MATLAB数组从索引1开始。但是,尽管如此,它还是可以在没有数据存储内存的情况下使用0作为索引—我想知道为什么。全局变量的初始值是在“块参数”对话框中设置的,我认为-1表示值的大小是继承的。targetFrequency似乎没有正确初始化。在这个小代码段中,您将它定义为全局的,然后在初始化为某个对象之前立即使用它。您似乎也没有在MATLAB函数中指定其大小,将其设置为-1或在数据故事中相同。感谢您的回答-如果现在解决了,问题是,我正在剥离此函数中的数组数组0:n,我认为0不是数组的可行索引,因为我发现MATLAB数组从索引1开始。但是,尽管如此,它还是可以在没有数据存储内存的情况下使用0作为索引—我想知道为什么。全局变量的初始值是在“块参数”对话框中设置的,我认为-1表示值的大小是继承的。