Matlab和Simulink中的信号生成

Matlab和Simulink中的信号生成,matlab,import,signals,simulink,Matlab,Import,Signals,Simulink,有一种结构Meas,它有一个名为B_cal的二进制信号,其参数为时间和值,值为信号。我在simulink中通过From工作区块使用此信号,并将[Meas.(Meas.time),Meas.value]作为块的参数。现在我需要生成一个新的二进制信号,它只有第一个高位(即1),而所有其他低位。信号的尺寸应与B_cal相同,因为我需要将两个信号都放在或门中。我尝试并在Matlab工作区中创建了一个向量: Signal = Zeros(20583,1); Signal(1) = 1; 然后我在Simu

有一种结构
Meas
,它有一个名为
B_cal
的二进制信号,其参数为时间和值,值为信号。我在simulink中通过From工作区块使用此信号,并将
[Meas.(Meas.time),Meas.value]
作为块的参数。现在我需要生成一个新的二进制信号,它只有第一个高位(即1),而所有其他低位。信号的尺寸应与
B_cal
相同,因为我需要将两个信号都放在
或门中。我尝试并在Matlab工作区中创建了一个向量:

Signal = Zeros(20583,1);
Signal(1) = 1;
然后我在Simulink中使用了一个FromWorkspace块,并尝试通过使用
Signal
作为块参数来导入这个信号。但是,它存在一个错误,即维度应该是矩阵的维度。

有人能告诉我如何解决这个问题吗。或者,如何使用相同的元素创建新结构,但值信号应根据需要设置,即第一位高,其余位低。

我认为您可能对FromWorkspace块要读取的变量有误解

块需要一个时间序列来定义模拟中各个点的值

“来自工作区”块帮助应该为您指明正确的方向。

我相信类似以下的东西会对你有用:

>> Signal.time=0;
>> Signal.signals.values=zeros(20583,1)
>> Signal.signals.values(1) = 1;
>> Signal.signals.dimensions = [20583,1]
阅读这个,当使用矩阵格式(与时间序列或结构相反)时,它必须至少有2列。第一列是时间,第二列(以及后续)是数据。根据您为
Meas
信号定义时间的方式,您需要类似
[Meas.(Meas.time)信号]
的东西。