① C++ 創建三維數組的幾種方法
給你一個三維的例子:
int nx = 10; //行數
int ny = 10; //列數
int nz = 10; //層數
int*** arr_np3D = NULL;
//創建
//分配第一層
arr_np3D = (int***)new int**[nz];
//分配第二層
for (int i=0; i<ny; i++)
{
arr_np3D[i] = (int**)new int*[ny];
}
//分配第三層
for (int i=0; i<ny; i++)
{
for (int j=0; j<nx; j++)
{
arr_np3D[i][j] = new int[nx];
}
}
//訪問元素
arr_np3D[2][5][4] = 10;
cout<<arr_np3D[2][5][4];
//釋放
//釋放第三層
for (int i=0; i<ny; i++)
{
for (int j=0; j<nx; j++)
{
delete[] arr_np3D[i][j];
arr_np3D[i][j] = NULL;
}
}
//釋放第二層
for (int i=0; i<ny; i++)
{
delete[] arr_np3D[i];
arr_np3D[i] = NULL;
}
//釋放第一層
delete[] arr_np3D;
arr_np3D = NULL;
② MATLAB中如何定義多維矩陣
1.定義兩個度矩陣,如m=1,2,3;2和4。三,四,五,4和6;N=1、3、5;2-2;3、5、7;4,6,8。

③ 如何建立matlab三維矩陣請給出一個matlab三維矩陣建立的具體過程。
在Matlab中習慣性的會將二維數組中的第一維稱為「行」第二維稱為「列」,而對於三維數組的第三位則是習慣性的稱為「頁」。在Matlab中將三維及三維以上的數組統稱為高維數組,三維數組也是高級運算的基礎
比如說,我的數據是四列的,分別表示坐標:x,y,z,和對應點的溫度值!
x y z T
1 1 1 15
2 2 2 20
3 3 3 22
4 4 4 25
5 5 5 23
用A(a,b,c)=B的方法來賦值,A=[1 2 3] 用A(:,:,2)=[2 3 4]就可以表示另一個面

④ matlab做一個三維矩陣
clear
tt=0;
for
nn=1:1000
%nn的上限可以調整nn=10000時,我算出來是7條線最少
for
tt=1:100
t=0;n=0;
for
i=1:3
for
j=1:3
for
k=1:3
h=randperm(2)-1;
f(i,j,k)=h(1);
t=t+f(i,j,k);
end
end
end
tt=tt+1;
ttt(tt)=t;
if
t==13
break;
end
end
for
i=1:3
for
j=1:3
for
k=1:3
if
sum(f(i,j,:))==3|sum(f(i,j,:))==0|sum(f(:,j,k))==3|sum(f(:,j,k))==0|sum(f(i,:,k))==3|sum(f(i,:,k))==0
n=n+1;
elseif
i==2&j==2&k~=2
for
k=1:3
if
f(1,1,k)==f(2,2,k)&f(1,1,k)==f(3,3,k)
n=n+1;
elseif
f(3,1,k)==f(2,2,k)&f(3,1,k)==f(1,3,k)
n=n+1;
end
end
elseif
j==2&k==2&i~=2
for
i=1:3
if
f(i,1,1)==f(i,2,2)&f(i,1,1)==f(i,3,3)
n=n+1;
elseif
f(i,1,3)==f(i,2,2)&f(i,1,3)==f(i,3,1)
n=n+1;
end
end
elseif
i==2&k==2&j~=2
for
j=1:3
if
f(1,j,1)==f(2,j,2)&f(1,j,1)==f(3,j,3)
n=n+1;
elseif
f(3,j,1)==f(2,j,2)&f(3,j,1)==f(1,j,3)
n=n+1;
end
end
elseif
i~=2&k~=2&j~=2
if
f(i,j,k)+f(4-i,4-j,4-k)==2*f(2,2,2)
n=n+1;
end
end
end
end
end
qq(nn)=n;
g(:,:,:,nn)=f;
if
nn>1
if
qq(nn)>qq(nn-1)
g(:,:,:,nn)=g(:,:,:,nn-1);
qq(nn)=qq(nn-1);
end
end
end
qq(nn)
g(:,:,:,nn)
%這個程序應該就可以解決問題了,至於精度的話,你可以通過調整nn的上限來解決。
最後輸出了一個是條數,另外一組是0,1的分布,按三層描述的。
⑤ C++語言怎麼用new創建三維數組
給你一個三維的例子:
int nx = 10; //行數
int ny = 10; //列數
int nz = 10; //層數
int*** arr_np3D = NULL;
//創建
//分配第一層
arr_np3D = (int***)new int**[nz];
//分配第二層
for (int i=0; i<ny; i++)
{
arr_np3D[i] = (int**)new int*[ny];
}
//分配第三層
for (int i=0; i<ny; i++)
{
for (int j=0; j<nx; j++)
{
arr_np3D[i][j] = new int[nx];
}
}
//訪問元素
arr_np3D[2][5][4] = 10;
cout<<arr_np3D[2][5][4];
//釋放
//釋放第三層
for (int i=0; i<ny; i++)
{
for (int j=0; j<nx; j++)
{
delete[] arr_np3D[i][j];
arr_np3D[i][j] = NULL;
}
}
//釋放第二層
for (int i=0; i<ny; i++)
{
delete[] arr_np3D[i];
arr_np3D[i] = NULL;
}
//釋放第一層
delete[] arr_np3D;
arr_np3D = NULL;
⑥ 怎麼創建三維數組並把二維數組插入 Matlab
matlab中沒有什麼三維數組的概念,只有cell這種數據類型,這種類型可以擴展至任意的維度;
三維數組,定義三個維度長度分別為2,3,4;
c = cell(4,1);
for i=1:4
c(i)=A %A為2x3二維數組
end
⑦ matlab如何定義三維數組
(1)在Matlab中習慣性的會將二維數組中的第一維稱為「行」第二維稱為「列」,而對於三維數組的第三位則是習慣性的稱為「頁」。在Matlab中將三維及三維以上的數組統稱為高維數組,三維數組也是高級運算的基礎。
(2)創建方法:
1、使用下標創建三維數組
在Matlab命令框中輸入以下代碼可以創建簡單的三維數組:
for
i=1:2
for
j=1:2
for
k=1:2
A(i,j,k)=i+j+k;
end
end
end
2、使用低維數組創建三維數組
我們可以先輸入一個二維數組,然後通過第三維數組與其關系生成第三維數組,例如輸入以下代碼可以生成三維數組:
D2=[1,2,3;4,5,6;7,8,9];
D3(:,:,1)=D2;
D3(:,:,2)=2*D2;
D3(:,:,3)=3*D2;
3、使用創建函數創建三維數組
使用Cat命令來創建高維數組。Cat命令的個事為【C=cat(dim,A1,A2,A3,A4……)】其中dim表示的是創建數組的維度,A1,A2,A3,A4表示的是各維度上的數組。在命令窗口中輸入以下代碼即可創建一個簡單的三維數組:
D2=[1,2,3;4,5,6;7,8,9];
C=cat(3,D2,2*D2,3*D2);
⑧ C++動態創建一個三維矩陣,並通過指針訪問該三維矩陣的元素,錯誤怎麼改
你可以開一維數組存3維數據,一維數組大小=high * row * col。 用一維方式找下標便可。
下面程序用new開3維動態數組的方法, 可能是你想要的:
#include<iostream>
using namespace std;
int main()
{
int high,row,col;
int i,j,k,x,y,z;
int count=1;
int ***p;
cout <<"input L W H: ";
cin>>high>>row>>col;
x=high;y=row;z=col;
p = new int**[x];
for (i=0;i<x;i++)
{
p[i]= new int*[y];
for (j=0;j<y;j++) p[i][j]=new int[z];
}
for(i=0;i<high;i++){
for(j=0;j<row;j++){
for(k=0;k<col;k++){
p[i][j][k]=count;
count++;
}}};
for(i=0;i<high;i++) {
for(j=0;j<row;j++) {
for(k=0;k<col;k++) { cout<<p[i][j][k]<<" "; }
cout<<endl;
} ;
cout << endl;
};
}
運行:
input L W H: 2 3 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24