線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1521
推到 Plurk!
推到 Facebook!

如何指定三維陣列的初始值

尚未結案
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-11 12:48:47 IP:211.23.xxx.xxx 未訂閱
各位高手 想請教一些問題 當我宣告一個三維陣列之後 如, int A[16][8][20] 我的目的是希望設定A[p][n][0]=0 ,怎樣設定三維陣列的初始值 EX.A[p][n][0]=0 可以這樣設定嗎? 還有如何存取三維陣列的數值 又二維陣列 跟三維陣列可否作運算 像是COPY 之類的運算 ex. A[p][n][index]=B[p][n] 可否這樣運算 謝謝 感激~~~
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-11 15:45:52 IP:140.135.xxx.xxx 未訂閱
foreseer您好:
引言: 當我宣告一個三維陣列之後 如, int A[16][8][20] 我的目的是希望設定A[p][n][0]=0 ,怎樣設定三維陣列的初始值 EX.A[p][n][0]=0 可以這樣設定嗎?

  int p=2, n=2;
  A[p][n][0]=0;
還有如何存取三維陣列的數值 又二維陣列 跟三維陣列可否作運算 像是COPY 之類的運算 ex. A[p][n][index]=B[p][n] 可否這樣運算
   
  int p=2, n=2, index=10;
  A[p][n][index]=B[p][n]; 
  //A[p][n][index]與B[p][n]裡面都是存放一數值,所以當然可以assign囉
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-11 21:31:08 IP:211.23.xxx.xxx 未訂閱
謝謝版主指導,還有問題想請教各位,如果我這樣寫 
  for(w=0;w<20;w  )// A 此三維陣列其內容初值設定為0 
   {
    for(q=0;q<16;q  )
    {
     for(t=0;t<8;t  )
     {
      A[q][t][w];
     }
    }
   }   
 
請問這樣就可以達成w=0,1,2,3,~~~19時,二維陣列[q][t]的內容值=0的效果了嗎? 謝謝 感激 初學程式設計這是一個很大的挑戰,希望有時候問的蠢問題,高手們能不吝指導,謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-11 23:24:58 IP:140.135.xxx.xxx 未訂閱
foreseer您好: 若您的陣列大小一開始就知道是int A[16][8][20] 那麼要使此陣列的初始值為0,下面的方式就可以了
int A[16][8][20]={0};
倘若int B[16][8]也要初始為0 同樣的
int B[16][8]={0};
感覺這樣比較簡潔 因為不知道您的目的為何,所以只好從您
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-12 00:46:41 IP:61.70.xxx.xxx 未訂閱
引言: foreseer您好: 若您的陣列大小一開始就知道是int A[16][8][20] 那麼要使此陣列的初始值為0,下面的方式就可以了
int A[16][8][20]={0};
倘若int B[16][8]也要初始為0 同樣的
int B[16][8]={0};
感覺這樣比較簡潔 因為不知道您的目的為何,所以只好從您>< face="Verdana, Arial, Helvetica"> 再次謝謝板主 我要做初始值=
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-12 00:52:06 IP:61.70.xxx.xxx 未訂閱
引言: foreseer您好: 若您的陣列大小一開始就知道是int A[16][8][20] 那麼要使此陣列的初始值為0,下面的方式就可以了
int A[16][8][20]={0};請問板主 那可以這樣寫嗎?=>A[16][8][0]={0};
代表第0類內容接為空,謝謝 倘若int B[16][8]也要初始為0 同樣的
int B[16][8]={0};
感覺這樣比較簡潔 因為不知道您的目的為何,所以只好從您>< face="Verdana, Arial, Helvetica"> 初學程式設計這是一個很大的挑戰,希望有時候問的蠢問題,高手們能不吝指導,謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-12 14:29:50 IP:140.135.xxx.xxx 未訂閱
foreseer您好:
引言: 我要做初始值=0的目的是希望做到把B[p][w]的值(在影像上是代表pixel數,ex.B[2][3]=100表示一張影像上,當H=2,S=3時共有100個pixel)放到A[p][w][0]內,即把第一張frame的B[p][w]=84480(352*240)個點,先將其分類到第0類,所以才會想要先把三為陣列先清空,讓二維的值能放到第0類 ,接著Frame2近來之後,就會跟現有的分類做相似度的比較...大概是這樣子,所以希望板主不吝指教 謝謝
不好意思.小弟看完您的描述後,還是不太懂您想表達的意思 感覺您要表達的好像是[清空陣列的資料內容].. 而不是[宣告三維陣列並設定初始值為>< face="Verdana, Arial, Helvetica">引言:那可以這樣寫嗎?=>A[16][8][0]={0}; 您要給的是一個數值嗎? 是的話那應該要改成
A[15][7][0]=0
還是要讓三維矩陣A,index=0, p=0~15, n=0~7的陣列內容為0? 如果是這樣,那必須使用for迴圈,一一把在這範圍內的A指派0給他,意即
 for (int p=0; p<16; p  )
 {
   for (int n=0; n<8; n  )
   {
     A[p][n][0]=0;
   }
 }
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-12 17:16:27 IP:211.23.xxx.xxx 未訂閱
版大,感謝您,我想我的問題應該是希望做到清空陣列,謝謝您我大概明白了 但是在這裡還有個小疑問想麻煩版大能幫我解答, 您之前舉例 > <>< face="Verdana, Arial, Helvetica">引言: foreseer您好:
引言: 我要做初始值=0的目的是希望做到把B[p][w]的值(在影像上是代表pixel數,ex.B[2][3]=100表示一張影像上,當H=2,S=3時共有100個pixel)放到A[p][w][0]內,即把第一張frame的B[p][w]=84480(352*240)個點,先將其分類到第0類,所以才會想要先把三為陣列先清空,讓二維的值能放到第0類 ,接著Frame2近來之後,就會跟現有的分類做相似度的比較...大概是這樣子,所以希望板主不吝指教 謝謝
不好意思.小弟看完您的描述後,還是不太懂您想表達的意思 感覺您要表達的好像是[清空陣列的資料內容].. 而不是[宣告三維陣列並設定初始值為>< face="Verdana, Arial, Helvetica">引言:那可以這樣寫嗎?=>A[16][8][0]={0}; 您要給的是一個數值嗎? 是的話那應該要改成
A[16][8][0]=0
還是要讓三維矩陣A,index=0, p=0~15, n=0~7的陣列內容為0? 如果是這樣,那必須使用for迴圈,一一把在這範圍內的A指派0給他,意即
 for (int p=0; p<16; p  )
 {
   for (int n=0; n<8; n  )
   {
     A[p][n][0]=0;
   }
 }
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - >< face="Verdana, Arial, Helvetica"> 初學程式設計這是一個很大的挑戰,希望有時候問的蠢問題,高手們能不吝指導,謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-12 17:28:26 IP:140.135.xxx.xxx 未訂閱
您好:
引言: 您之前舉例int A[16][8][20]={0}; 這樣寫的意思是將0值 給座標(16,8,20)這點嗎? 還是針對整個 16*8*20陣列上每個元素都給它0值呢? 是針對整個16*8*20陣列上每個元素都給它0 又A[16][8][20]=0; 是指三維座標上(16,8,20)這點的值=0? 是您說的值=0,但應該是
A[15][7][19]=0 
要注意到範圍0~15, 0~7, 0~19, 所以是沒有座標(16,8,20)這個點, 因為已經超出範圍了, 之前沒注意,抱歉
發表人 - taishyang 於 2004/04/12 17:31:58
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-12 18:32:07 IP:211.23.xxx.xxx 未訂閱
謝謝版大的指導^^ 我懂囉!
引言: 您好:
引言: 您之前舉例int A[16][8][20]={0}; 這樣寫的意思是將0值 給座標(16,8,20)這點嗎? 還是針對整個 16*8*20陣列上每個元素都給它0值呢? 是針對整個16*8*20陣列上每個元素都給它0 又A[16][8][20]=0; 是指三維座標上(16,8,20)這點的值=0? 是您說的值=0,但應該是
A[15][7][19]=0 
要注意到範圍0~15, 0~7, 0~19, 所以是沒有座標(16,8,20)這個點, 因為已經超出範圍了, 之前沒注意,抱歉
發表人 - taishyang 於 2004/04/12 17:31:58
初學程式設計這是一個很大的挑戰,希望有時候問的蠢問題,高手們能不吝指導,謝謝
系統時間:2024-05-18 12:43:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!