精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于如何定義結構體的分析和介紹

MATLAB ? 來源:djl ? 作者:柚籽 ? 2019-09-16 10:31 ? 次閱讀

我們來聊聊結構體。

E-Coder 在做自動代碼生成的時候,在默認情況下,它會把所有的輸入信號定義為一個結構體_U,把所有的輸出信號定義為另一個結構體_Y,把所有的參數定義為一個結構體_P。雖然這樣的結構體不一定是我們想要的,但至少,說明自動代碼生成是支持結構體的。

本文并不解決“哪些情況下應該使用結構體”這個問題,這里來說說:

怎么實現我想要的結構體?

從之前的文章中我們說到,自動生成代碼時,想讓各種信號、參數定義和聲明采用什么樣的方式,都是通過數據對象 (Data Object) 來實現的。那,如果我希望把信號 a ,b,c 或者參數 k1,k2,k3 定義為一個結構體,該怎么實現呢?

構造結構體

要得到:

typdef struct {

double k1;

double k2;

double k3;

} kk_type;

kk_type kk={2.0,3.0,4.0};

怎么做:

設置數據對象的Storage Class屬性為 Struct

或者使用Simulink Bus來定義新的結構體類型 outyy

舉個例子

1.新建如下的簡單模型并生成代碼

先看一下 “正常的” 不使用結構體的情況:

關于如何定義結構體的分析和介紹

看下面這張圖,定義好了對應的信號數據對象 (Simulink.Signal) u1、u2、u3、yy1、yy2、yy3,與參數數據對象(Simulink.Parameter) k1、k2、k3。

通過名字對應以及關聯操作,實現關聯,也就是上圖中的藍色小叉子。具體如何操作以前介紹過。

關于如何定義結構體的分析和介紹

Ctrl + B,生成代碼:

關于如何定義結構體的分析和介紹

2.把參數 k1、k2、k3 放在指定的結構體 kk 里

選中數據對象 k1,k2,k3,把 StorageClass 都設置為 Struct(Custom),并指定結構體名字為 kk。這樣在自動生成代碼時,這幾個參數會自動放入結構體 kk 中。

關于如何定義結構體的分析和介紹

看到,在生成的代碼里,得到一個新的結構體類型 kk_type:

關于如何定義結構體的分析和介紹

并且,根據這幾個參數的值,得到了結構體變量 kk:

關于如何定義結構體的分析和介紹

3.把信號 yy1、yy2、yy3 也放在一個輸出結構體里

剛才的參數結構體是通過設置數據對象的 StorageClass 為 Struct 來實現的。而現在,以信號為例,使用另一種方式來實現這個目的: Simulink Bus。

a.首先,通過 Simulink Bus 來定義一個新的結構體數據類型 outyy:

關于如何定義結構體的分析和介紹

定義這個 Bus 的結構,里面的成員名就是最后出現在代碼里的名字:

關于如何定義結構體的分析和介紹

那么此時,一個新的數據類型就構造好了。將來在生成代碼時,這個新的結構體類型就是這樣:

關于如何定義結構體的分析和介紹

數據類型定義好了,接著,我們就要來用它了。

b. 把 Simulink 的三個輸出信號使用 Bus Creator 模塊變成總線信號,取名叫 outStruct:

關于如何定義結構體的分析和介紹

設置這個 Bus Creator 模塊的數據類型為剛定義好的結構體 outyy。另外,還得勾選它為非虛擬總線。那么這樣,它在生成代碼時,就會被當做結構體來看:

關于如何定義結構體的分析和介紹

c. 如同之前每一個 double\single 類型的信號一樣,接著,也為 outStruct信號定義一個同名的數據對象 outStruct。

在 Simulink 模型上的 outStruct 信號線的屬性界面上勾選關聯到這個數據對象,得到藍色小叉子。

關于如何定義結構體的分析和介紹

4. 最后生成代碼

關于如何定義結構體的分析和介紹

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    6888

    瀏覽量

    88826
  • 數據類型
    +關注

    關注

    0

    文章

    236

    瀏覽量

    13608
  • 結構體
    +關注

    關注

    1

    文章

    129

    瀏覽量

    10833
收藏 人收藏

    評論

    相關推薦

    你是否真的了解結構占用了多少字節?

    結構成員所占內存空間大小一般情況下,如果想知道結構成員的內存占用情況需要:1、先用結構在內
    的頭像 發表于 06-04 08:04 ?378次閱讀
    你是否真的了解<b class='flag-5'>結構</b><b class='flag-5'>體</b>占用了多少字節?

    射頻分析儀的工作原理和基本結構

    在通信和信息技術日益發展的今天,射頻分析儀作為一種關鍵的測試和測量設備,發揮著不可替代的作用。它集成了射頻通信系統測試與測量的所有必要功能,為無線通信網絡的優化和維護提供了強有力的技術支持。本文將對射頻分析儀的定義、工作原理、基
    的頭像 發表于 05-14 17:23 ?631次閱讀

    矢量信號分析儀的工作原理和基本結構

    中發揮著至關重要的作用。本文將對矢量信號分析儀進行詳細的介紹,包括其定義、工作原理、基本結構以及應用等方面,旨在為讀者提供全面的了解和參考。
    的頭像 發表于 05-13 18:17 ?3731次閱讀

    實時頻譜分析儀的工作原理和基本結構

    的便利。本文將對實時頻譜分析儀的定義、工作原理、基本結構以及應用進行詳細介紹,以期為相關領域的研究和應用提供參考。
    的頭像 發表于 05-13 18:15 ?1347次閱讀

    掃頻頻譜分析儀的工作原理和基本結構

    掃頻頻譜分析儀,作為電子測量領域的重要工具,其重要性不言而喻。本文將對掃頻頻譜分析儀進行全面深入的解析,包括其定義、工作原理、基本結構以及在實際應用中的優勢和局限性。通過本文的
    的頭像 發表于 05-13 18:07 ?1355次閱讀

    嵌入式中C語言結構基本實現

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構是C語言編程中允許您存儲不同數據類型的數據。 結構定義 ????要想
    的頭像 發表于 05-11 08:49 ?941次閱讀
    嵌入式中C語言<b class='flag-5'>結構</b><b class='flag-5'>體</b>基本實現

    定義了一個結構,但是分配的地址不連續,為什么?

    定義了一個結構,但是分配的地址不連續,是KEIL的問題還是我的問題?
    發表于 04-26 08:12

    成型電感發熱的原因分析

    作為電子電路中非常重要的一個電感元件,它的品質和穩定性對于電路以及設備的正常運行是非常重要的。關于成型電感在使用中出現發熱的情況,我們可以從以下幾個方面進行分析: 1、銅損是引起一
    的頭像 發表于 04-02 22:17 ?484次閱讀

    C語言結構史上最詳細的講解【軟件干貨】

    的基本屬性,但是當我們想表達一個事物的全部或部分屬性時,這時候再用單一的基本數據類型明顯就無法滿足需求了,這時候C提供了一種自定義數據類型,他可以封裝多個基本數據類型,這種數據類型叫結構,英文名稱struct,可以使用stru
    的頭像 發表于 03-28 17:52 ?691次閱讀

    求助,關于G031ADC結構設置的幾個疑問求解

    本人在使用ADC時想使用多通道模式,所以便在CUBEMX上將十九個通道全部打開(包括三個內部通道),生成代碼以后詳細看了一下結構的配置發現有幾個疑惑, 1.ADC通道分為規則通道和注入通道,那么
    發表于 03-15 07:03

    求助,請問一個結構如何全部定義到 __attribute__ 區域?

    請問一個結構如何全部定義到 __attribute__ 區域? 例如我這里涉及到一些高速計算的緩存,計劃將緩存數據存儲到 __attribute__ 區域。 三個結構
    發表于 01-16 07:29

    經典 C 語言編程,結構和聯合體如何共用?

    中可以 使用 sizeof 進行獲取,默認為字節對齊的大小。 聯合體 聯合體的參數共享同一個內存地址,所占的內存大小完全是由聯合體中參數類型決定字長,然后數據共享,內存共享等。 結構和聯合體連用例子: 1、首先定義一個
    的頭像 發表于 01-11 18:24 ?1260次閱讀
    經典 C 語言編程,<b class='flag-5'>結構</b><b class='flag-5'>體</b>和聯合體如何共用?

    結構與指針的關系

    在C語言中,結構(Struct)是一種用戶自定義的數據類型,它允許您將不同類型的數據項組合在一起,以便形成一個更復雜的數據結構結構
    的頭像 發表于 01-11 08:00 ?939次閱讀
    <b class='flag-5'>結構</b><b class='flag-5'>體</b>與指針的關系

    golang結構如何定義?如何使用呢?

    結構是go語言最重要的數據結構之一,go和其它編程語言不一樣,它沒有類的概念,類比過來struct就相當于其它語言中的類,因此十分重要。
    的頭像 發表于 11-28 10:36 ?417次閱讀

    golang結構實例代碼

    結構是go語言最重要的數據結構之一,go和其它編程語言不一樣,它沒有類的概念,類比過來struct就相當于其它語言中的類,因此十分重要。
    的頭像 發表于 11-28 10:35 ?425次閱讀