3維數組怎麼存儲
㈠ 在C#中怎麼將一個RGB三維數組保存為一幅圖像,保存到電腦硬碟上,求高手解答!!!急需。。。
public Bitmap GetDataPicture(int w, int h, byte[] data)
{
Bitmap bmp = new Bitmap(w, h, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Color color;
for
(int i = 0; i < data.length; i++)
{
color = Color.FromArgb(data[i]);
bmp.SetPixel(i/w,i/h, c);
}
return bmp;
}
㈡ 請寫出一維、二維、三維數組的存儲方式
一維數組按順序存儲
二維數組按順序存儲一維數組
三維數組按順序存儲二維數組
㈢ matlab中多維數組存儲方式
1.一個三維數組由行、列和頁三維組成,其中每一頁包含一個由行和列構成的二維數組。
2.利用標准數組函數創建多維數組
A=zeros(4,3,2) 生成一個4行3列2頁的三維全0數組,ones,rand和randn等函數有相似的用法。
3.利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然後通過數組直接索引,添加第二頁、第三頁。
㈣ 怎麼計算三維數組的存儲地址
假設數組各維的下界是不是1,二維數組A(mn)按「行優先順序」存儲在內存中,假設每個元素佔用d個存儲單元。元素a(ij)的存儲地址應是數組的基地址加上排在a(ij)前面的元素所佔用的單元數。因為a(ij)位於第i行、第j列,前面i-1行一共有(i-1)×n個元素,第i行上a(ij)前面又有j-1個元素,故它前面一共有(i-1) ×n+j-1個元素。
因此,a(ij)的地址計算函數為:LOC(aij)=LOC(a11)+[(i-1)*n+j-1]*d。
同樣,三維數組A(ijk)按「行優先順序」存儲,其地址計算函數為:LOC(aijk)=LOC(a111)+[(i-1)*n*p+(j-1)*p+(k-1)]*d。
上述討論均是假設數組各維的下界是1,更一般的二維數組是A[c1..d1,c2..d2],這里c1,c2不一定是1。a(ij)前一共有i-c1行,二維數組一共有d2-c2+1列,故這i-c1行共有(i-c1)*(d2-c2+1)個元素,第i行上a(ij)前一共有j-c2個元素。
因此,a(ij)的地址計算函數為:LOC(aij)=LOC(ac1c2)+[(i-c1)*(d2-c2+1)+j-c2)]*d。
例如,在C語言中,數組各維下標的下界是0,因此在C語言中,二維數組的地址計算公式為:LOC(aij)=LOC(a00)+(i*(d2+1)+j)*d。
㈤ C++中三維數組在計算機中是如何存儲的
不管是幾維的數組都是像二維的一樣順序儲存的。根據入棧出棧
㈥ c++中,如何將3維數組的值存儲到vector中。
#include<iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main()
{
int a[2][2][2]={{{1,2},{3,4}},{{5,6},{7,8}}};
int i,j,k;
vector<int> vec;
for(i = 0;i < 2;i++)
{
for(j = 0; j <肆亮 2; j ++)
{
for(k = 0; k < 2;k++)
{
vec.push_back(a[i][j][k]);
}
}
}
return 0;
}
其談蠢實就是遍歷一遍含雹陪這個三維數組!
㈦ 在C中,多維數組元素的存儲順序是按照什麼原則進行
例如二維數組,int digi[2][2],可以理解為此數組有二行二列,即int digi[行][列]
排列順序:排完第一行,再排第二行,則有
第一行:
digi[0][0]
digi[0][1]
第二行:
digi[1][0]
digi[1][1]
…
可以理解成,行在前面較列(後面)大,列排序由小到大,排完第一行在排第二行,依此類推。
……又例如三維數組,int Iarr[2][2][2],可以理解為,2排2行2列,(比喻成班級成員可分為,小組,組,一班)……
顯然排序,當然第一排排完後再到第二排最後到第三排,但是排內部又有行,當然第一行排完後再到第二……,列同樣如此,
簡單理解:排>行>列,(大到小)
所以上面排序為:
第一排
第一行
Iarr[0][0][0]第一列
Iarr[0][0][1]第二列
第二行
Iarr[0][1][0]第一列
Iarr[0] [1][1]第二列
……
第二排
第一行
Iarr[1][0][0]第一列
Iarr[1][0][1]第二列
第二行
Iarr[1][1][0]第一列
Iarr[1][1][1]第二列
㈧ matlab如何建一個三維數組並保存啊急用啊!!
三維數組就是消慧加一個指標,
在end前一行插入
ksave(h,1,1)=k(1,1);……ksave(h,2,3)=k(2,3);……即可,
把茄橋皮ksave存起來就行了,以後調用反過來就是,h就是編號顫差
㈨ 數組存放在什麼位置
數組是用於儲存多個相同類型數據的集合。
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
一維數組在內存中的存放方式是:
1、硬碟上不可能運行程序的,必須在內存中運行。
2、低地址到高地址存儲 。
3、數組元素通常也稱為下標變數。
4、在C語言中,只能逐個地使用下標變數, 不能用一個語句輸出整個數組。
5、int a[10]和t=a[6]分別是定義數組長度為10和引用a數組中序號為6的元素,6不代表數組長度。