2015-12-03 27 views
1

我有一個.mat文件,其中有一個結構加載到工作區中。我創建了一個simulink模型,並希望從工作區導入信號。 「來自工作空間」塊的數據參數應該是什麼輸入值。結構的名稱是「測量」,「信號名稱」是B_cal,它具有其他元素,如時間,名稱,單位和值。我知道的結構可以通過有點像這個命令來訪問:Simulink中「從工作區」塊的輸入參數

Measurements.B_cal.value

,但我無法設置輸入參數。任何人都可以幫助我嗎?

+0

不知道你的數據是怎麼樣的,但我會嘗試'Measurements.B_cal' – Daniel

回答

2

有一些限制通過FromWorkspace塊使用結構:

甲MATLAB表達式計算結果爲下列之一:

  • 甲MATLAB時間序列對象
  • MATLAB的結構時間序列對象
  • 二維矩陣: 每個矩陣行的第一個元素是時間戳。 每行的其餘部分是信號值的標量或向量。
  • 一個結構,有或沒有時間,它包含: 1)一個signals.values字段,其中包含一個信號值向量 2)一個可選的signals.dimensions數組,其中包含信號的尺寸 3)可選的時間向量,其中包含時間戳

您可以在help找到更多有用的信息。

所以在你的情況下,你可以使用不同的方法。我舉幾個例子:

1)在必要的格式定義struct

t = (1:10)'; %' 
v = [6 9 3 1 7 0 7 3 8 1]'; %' 
measure.time = t; 
measure.signals.values = v; 

重要的時刻在這裏:tv必須是列!行將無法正常工作! 如果您需要使用數據的幾行使用多維v並添加

measure.signals.dimentions = size(v,2); 

2)你可以看到的部份time字段是可選的。如果您沒有它,您需要設置0以外的塊中的採樣時間,並且清除插值數據,在最終數據值之後將表格輸出設置爲外插值以外的值。此外,您需要定義時間字段:

mystruct.time = []; 

3)如果你不想改變你的結構,你可以用下一:

t = (1:10)'; %' 

,並設置這FromWorkspace塊的數據: [t, Measurements.B_cal.value]

4)有一些有用的方法:使用時間序列或只是矩陣。但是,如果你需要使用你的結構,這不是你的情況。

+0

是的,這就是我一直在尋找...非常感謝:) @Mikhail_Sam –