91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

如何創(chuàng)建和使用多維數組

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-26 17:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:我們需要什么要擁有

要最終以可見的方式顯示二維數組(我們稍后將討論3維數組選項),我們將創(chuàng)建一個記錄設備使用與我的一維數組Instructable相同的材料。這些材料是:

3個面包板按鈕(記錄按鈕,記錄其按下情況的按鈕和播放按鈕)

3個LED(指示每個按鈕何時已按下)

6個小電阻(我將使用220歐姆)

Digilent的chipKIT Uno32(運行代碼的微控制器

跳線(

面包板(未顯示)

步驟2:關于多維數組的注意事項

一個二維數組,或與此相關的任何二維數組,本質上是多個單維數組。多維數組的好處是它可以在一個代碼段中直觀地將相關數組分組在一起。這樣,程序員不必從多個來源調用信息,而是可以指定一個來源并從那里找到他們的信息。

聲明一個維數組時,實際上就是在創(chuàng)建一行值。對于每個更高的維度,您都可以在值行中添加(不信不信)另一個維度。二維數組將使您的線成為值的平面,而三維數組將使值的平面成為值的立方體。

再往前走,您就會開始涉入有趣的觀點??梢詫⒁粋€四維數組視為具有三個多維數據集的一行。六個維度的數組可以認為是一個立方體。等等。

不過,作為免責聲明,您在編程中幾乎不需要3維數組以外的任何東西。當然,更高維度的數組可以用作[國家/地區(qū)] [州] [縣] [鎮(zhèn)] [家庭] [人]或某些銷售目的的目錄/數據庫,但是(在我看來)這將更易于在多個環(huán)境中導航,較小尺寸的數組,并且其中一些數組需要大量的內存。

步驟3:聲明和初始化二維數組

但是讓我們進入實際創(chuàng)建這些數組的更實際的部分。添加到數組中的每個維度都會在第一組[元素]的前面添加一個額外的[元素],該元素指定每個單個維度數組的長度。

因此,對于二維數組,您可以將聲明您需要一定數量的具有一定長度的單維數組。例如,如果我想聲明一個包含3個一維數組(每個數組包含4個元素)的2D數組,我將輸入:

int myFirst2DArray [3] [4];

這很好創(chuàng)建我們想要的數組,但在所有12個點中都用零填充。要使用某些值初始化它,而不必以后再單獨分配它們,我們可以改為輸入:

int myFirst2DArray [3] [4] =

{

{1,2,3,4 },

{5,6,7,8},

{9,10,11,12}

};

您可以安排它,使其僅在一行上相反,但這可以使我從視覺上確保我擁有所有想要的值。

與單維數組一樣,我們可以通過說明各個方向上的哪個元素來訪問單個值我們要訪問。例如,要獲取第二個數組的一維數組的第三個值,我們輸入:

int x = myFirst2DArray [1] [2];

步驟4:聲明和初始化高維數組

同樣,當您向單個維數組添加更多維時,在聲明的前面會添加更多[elements]陣列。因此,對于一個具有三層,四行,每行中具有兩個元素的三維單維數組的三維數組,我們可以通過鍵入以下內容對其進行初始化:

int myFirst3DArray [3] [4] [2] =

{

{{10,11},{12,13},{14,15},{16,17}},

{{18,19},{20, 21},{22、23},{24、25}},

{{26,27},{28、29},{30、31},{32、33}}

};

步驟5:關于多維數組的更多信息

請注意,我們可以將數組擴展到更多通過以下方式幫助說明這三個維度:

{//整個數組

{//多維數據集的第一層

{10,11},//值的第一行/行圖層

{12,13}等,等等//圖層中的其他值行

},//多維數據集第一層的末端

{//多維數據集的第二層

{18,19}等,等等//值行

}//第二層的末尾

等,等等//第三層和值

}//整個末尾數組

。..但是那將使步驟l不必要的大而繁瑣(顯然Instructables忽略了代碼和注釋之間的某些空格),因此在一行的特定層中初始化所有值的更為精簡的版本代替了。通過這種嵌套的{}樣式,您可以創(chuàng)建多維數組。

請注意,在初始化數組時,您不會為高階維提供值,而只是為單維數組提供值。否則,您將嘗試以某種方式為編譯器不知道要處理的數組賦予額外的值。

步驟6:實踐中的二維數組

讓我們建立電路,以便我們可以測試二維陣列。如果您碰巧已經從我的Instructionable一維數組中設置了此電路,請隨時跳過該電路結構。

將面包板上的負電源導軌連接到標有“芯片組Uno32上的“ GND”。然后,從Uno32上的3.3V電源引腳到面包板上的正極電源線連接一根跳線。

現在,將三個按鈕中的每個按鈕放置在面包板上,使每個按鈕跨過面包板中間的山谷。使用電阻器之一將每個按鈕的一只腳連接到負電源軌。將支腳與接地的導線連接到山谷的同一側,并連接至正極電源線。

步驟7:設置電路-LED和數字信號

對于電路的視覺部分(包括LED,無論是否相信),在每個按鈕旁邊放置一個LED。在每個LED的陰極側與負電源軌之間連接一個220 Ohm的電阻。

雖然看起來不錯,但是如果我們無法從電路中發(fā)出或接收任何信號,那對我們沒有好處。要解決此問題,請從每個LED的陽極側到Uno32上自己的數字引腳的跳線,以及從每個按鈕的接地腳到Uno32上他們自己的數字引腳的跳線。我將引腳5、7和9用于按鈕,將引腳31、33和35用于LED。

步驟8:二維記錄代碼

根據記錄的性質,我們和微控制器都無法確定在實際停止記錄之前記錄將持續(xù)多長時間。因此,我們將猜測要存儲最長的記錄,陣列必須有多大。由于Uno32具有32位處理器,因此我們不必擔心整數的大小限制,除非您計劃在錄制期間一次按住(或不按?。┌粹o超過24天。

假設是這種情況,我們或至少我將記錄陣列的大小設置為兩組,每組50個元素,因為我不打算記錄超過25次的按鈕按下(其中一個用于按下按鈕)并熄滅,一個按下按鈕,然后點亮)。第二組50個元素跟蹤按鈕的打開或關閉狀態(tài),這樣您就不僅可以記錄按鈕被按下(或不按下)的時間長度,還可以猜測按鈕在開始時是否被按下。錄音。您可以在下面的文本文件中下載用于Uno32的代碼。如果尚未安裝,則需要免費的MPIDE軟件對Uno32進行編程。

可以免費簽出二維記錄視頻;您可能會注意到,它看起來與單陣列演示視頻的視頻看起來非常相似,但這是因為二維數組本質上是一組單維數組,因此兩組代碼在功能上是相同的。

第9步:您提到了3維數組嗎?

確實做到了。但這也與多維數組的固有局限性有關。此限制以內存形式出現。在創(chuàng)建代碼的大部分時間里,我都會將變量放在“堆棧”(編程中的內存對象)上,假定它們是局部變量,或者創(chuàng)建全局變量,這些變量存儲在稱為“ .data”的另一種內存類型中。 p》

我不會嘗試解釋編程中內存的詳細信息/機制(主要是因為我不太了解它,但是您可以在此處了解更多信息),而是從我的理解中了解在Uno32上創(chuàng)建巨型三維數組作為一種乘法表/多維數據集,我遇到了堆棧溢出問題,這意味著我試圖在內存中放置超出空間的東西,因此編譯器將多余的東西放在其他地方不應混淆的內存位置,導致在我嘗試運行該程序時該程序崩潰。我似乎無法說服該程序,動態(tài)分配的內存也應該允許我有更多的內存空間。

基本上,我內存不足,無法找到一種制作3D陣列的方法工作。

我最終確實做了一個小的2D數組工作(60 x 60),但是我們只介紹了2D數組的一個例子,最后,您可以在代碼中鍵入乘法問題并得到答案。無需先創(chuàng)建答案數組。這是學習新事物和實用主義之間的分界線。

責任編輯:wv

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

    關注

    243

    文章

    24612

    瀏覽量

    691030
  • 電阻
    +關注

    關注

    88

    文章

    5781

    瀏覽量

    179591
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問如何構建和運行視頻編解碼器示例應用程序?

    如何構建和運行視頻編解碼器示例應用程序?
    發(fā)表于 03-10 06:27

    橋梁船舶防撞預警系統(tǒng)功能詳解:多維感知精準預警

    船舶防撞預警系統(tǒng)的核心優(yōu)勢,在于構建了“雷達+視覺+AIS”的三位一體多維感知網。
    的頭像 發(fā)表于 01-29 17:03 ?316次閱讀

    RT-Thread Vector軟件包:嵌入式開發(fā)的動態(tài)數組容器 | 技術集結

    RT-Thread Vector軟件包:嵌入式開發(fā)的動態(tài)數組容器 | 技術集結
    的頭像 發(fā)表于 01-25 09:33 ?5411次閱讀
    RT-Thread Vector軟件包:嵌入式開發(fā)的動態(tài)<b class='flag-5'>數組</b>容器 | 技術集結

    電能質量在線監(jiān)測裝置支持多維度統(tǒng)計報表嗎?

    ? 是的,主流電能質量在線監(jiān)測裝置普遍支持多維度統(tǒng)計報表功能 ,這是其數據分析能力的核心組成部分,能幫助用戶全面評估電網電能質量狀況,滿足合規(guī)性要求和運維決策需求。 一、多維度統(tǒng)計的核心維度類型
    的頭像 發(fā)表于 12-11 16:51 ?595次閱讀

    scanf函數介紹

    \",a); 正確 二維數據或多維數組的定義和引用 int a[4,5]; a[1+2,2+2]=5; 錯誤 int[10]; 正確 誤以為數組名代表數組全部元素 int a[4
    發(fā)表于 12-02 06:07

    數組的初體驗

    程序中也需要容器,只不過該容器有點特殊,它在程序中是一塊連續(xù)的,大小固定并且里面的數據類型一致的內存空間,它還有個好聽的名字叫數組??梢詫?b class='flag-5'>數組理解為大小固定,所放物品為同類的一個購物袋,在該購 物
    發(fā)表于 11-25 08:06

    二維數組介紹

    大家不要認為二維數組在內存中就是按行、列這樣二維存儲的,實際上,不管二維、三維數組… 都是編譯器的語法糖。 存儲上和一維數組沒有本質區(qū)別,舉個例子: int array[3][3
    發(fā)表于 11-25 07:42

    黑芝麻智能推出面向機器人產業(yè)的SesameX多維智能計算平臺

    11月20日,“多維進化,智賦新生”2025年黑芝麻智能機器人平臺產品發(fā)布會在上海成功舉行,正式推出面向機器人產業(yè)的SesameX多維智能計算平臺,這是業(yè)界首個機器人商業(yè)化專屬部署平臺。
    的頭像 發(fā)表于 11-24 14:44 ?592次閱讀
    黑芝麻智能推出面向機器人產業(yè)的SesameX<b class='flag-5'>多維</b>智能計算平臺

    AEM多維度安全保障賦能加氫站,制、加氫無憂!

    AEM(陰離子交換膜)電解水制氫設備在技術、材料、結構、設計與運行控制等多維度安全性能方面表現突出,其技術特性與加氫站的安全需求高度契合,能夠確保站點制、加氫無憂!
    的頭像 發(fā)表于 07-03 10:27 ?1002次閱讀
    AEM<b class='flag-5'>多維</b>度安全保障賦能加氫站,制、加氫無憂!

    迅為RK3576開發(fā)板NPU環(huán)境搭建和使用rknn-toolkit2功能演示模型轉換

    迅為RK3576開發(fā)板NPU環(huán)境搭建和使用rknn-toolkit2功能演示模型轉換
    的頭像 發(fā)表于 06-19 10:53 ?1363次閱讀
    迅為RK3576開發(fā)板NPU環(huán)境搭<b class='flag-5'>建和</b>使用rknn-toolkit2功能演示模型轉換

    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝

    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝
    的頭像 發(fā)表于 06-18 15:22 ?1290次閱讀
    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭<b class='flag-5'>建和</b>使用docker環(huán)境安裝

    迅為RK3576開發(fā)板NPU例程測試-rknn-toolkit2環(huán)境搭建和使用

    迅為RK3576開發(fā)板NPU例程測試-rknn-toolkit2環(huán)境搭建和使用
    的頭像 發(fā)表于 06-17 13:46 ?1750次閱讀
    迅為RK3576開發(fā)板NPU例程測試-rknn-toolkit2環(huán)境搭<b class='flag-5'>建和</b>使用

    多維科技模擬輸出角度芯片的優(yōu)勢詳解之「響應速度」

    圖1:本文內容結構多維科技在蘇州總部建起的TMR(TunnelingMagnetoResistance,隧道磁阻效應)芯片產線,是國內目前唯一的8英寸TMRWafer產線,具備領先的工藝和產能優(yōu)勢
    的頭像 發(fā)表于 05-09 17:52 ?714次閱讀
    <b class='flag-5'>多維</b>科技模擬輸出角度芯片的優(yōu)勢詳解之「響應速度」

    stm32 DMA串口接收到數組,數組元素順序錯亂怎么解決?

    配置DMA循環(huán)模式,使用HAL_UART_Receive_DMA(&huart1,buffer,4)函數將串口數據循環(huán)發(fā)送到4個元素的buffer數組內,上位機20ms發(fā)送一次
    發(fā)表于 03-12 08:02

    Nordic 54L15開發(fā)環(huán)境搭建和開發(fā)文檔誰知道,謝謝

    Nordic 54L15開發(fā)環(huán)境搭建和開發(fā)文檔誰知道,謝謝
    發(fā)表于 03-10 15:34