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不代表数组长度。