我有一个.mat文件,其结构已加载到Workspace中 . 我创建了一个simulink模型,并希望从Workspace导入信号 . “From Workspace”块的数据参数的输入值应该是什么 . 结构的名称是Measurements,Signal Name是B_cal,它还有其他元素,如时间,名称,单位和值 . 我知道可以像这个命令一样访问结构:
Measurements.B_cal.value
但我无法设置输入参数 . 任何人都可以帮我这个吗?
通过FromWorkspace块使用结构有一些限制:
评估为以下之一的MATLAB表达式:MATLAB时间序列对象MATLAB时间序列对象的结构二维矩阵:每个矩阵行的第一个元素是时间戳 . 每行的其余部分是信号值的标量或向量 . 一个有或没有时间的结构,它包含:1)一个signal.values字段,它包含一个信号值向量2)一个可选的signals.dimensions数组,它包含信号的维数3)一个可选的时间向量,包含时间戳
您可以在help找到更多有用的信息 .
所以在你的情况下你可以使用不同的方法 . 我举几个例子:
1)以必要的格式定义 struct :
struct
t = (1:10)'; %' v = [6 9 3 1 7 0 7 3 8 1]'; %' measure.time = t; measure.signals.values = v;
重要时刻: t 和 v 必须是一列!行不行!如果需要使用多行数据,请使用multidimensional v 并添加
t
v
measure.signals.dimentions = size(v,2);
2)你可以看到 time 字段是可选的 . 如果没有,则需要在0以外的块中设置采样时间,并清除插值数据,在最终数据值之后将表格输出设置为除外推之外的值 . 此外,您需要定义时间字段:
time
mystruct.time = [];
3)如果您不想更改结构,可以使用下一个:
t = (1:10)'; %'
并在FromWorkspace块的数据中设置它: [t, Measurements.B_cal.value] .
[t, Measurements.B_cal.value]
4)有一些有用的方法:使用时间序列或只是矩阵 . 但是如果你需要使用你的结构,那真的不是你的情况 .
1 回答
通过FromWorkspace块使用结构有一些限制:
您可以在help找到更多有用的信息 .
所以在你的情况下你可以使用不同的方法 . 我举几个例子:
1)以必要的格式定义
struct
:重要时刻:
t
和v
必须是一列!行不行!如果需要使用多行数据,请使用multidimensionalv
并添加2)你可以看到
time
字段是可选的 . 如果没有,则需要在0以外的块中设置采样时间,并清除插值数据,在最终数据值之后将表格输出设置为除外推之外的值 . 此外,您需要定义时间字段:3)如果您不想更改结构,可以使用下一个:
并在FromWorkspace块的数据中设置它:
[t, Measurements.B_cal.value]
.4)有一些有用的方法:使用时间序列或只是矩阵 . 但是如果你需要使用你的结构,那真的不是你的情况 .