发布网友 发布时间:2022-04-29 05:43
共4个回答
热心网友 时间:2023-10-13 01:12
在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]就可以表示另一个面
但这个方法很麻烦,
通常情况下用三维矩阵的时候先初始化好,确定要用的三维矩阵是多大的。
国际象棋的棋盘(8*8)可以看作二维的,而每一个格子上可以放一个棋子,用数字1到6和7到12对应两方6类棋子,0表示不放棋子,那么一个8*8的矩阵,各元素是0--12,就可以表示一盘棋。现在有5个盘棋,那么就有一个三维矩阵(8*8*5),显然矩阵中每一个元素都是0到12中的一个数。
用A表示这个三维矩阵,那么A(:,:,1)表示第1个棋盘,A(:,:,2)表示第2个棋盘。。。。依次类推。
热心网友 时间:2023-10-13 01:13
你这个不适合用三维矩阵吧。三维的话可不是1,1,1、2,2,2、3,3,3这样的,每一维都是从1到给定阶的。如果有3*4*5的三维矩阵那你的数据要有3*4*5个。中间不能有空的。你存储数据用二维的就可以,不一定非要用三维的,画图可以画三维的。追问谢谢,我已经弄清楚三维矩阵怎么表示了!A=[1 2 3] 用A(:,:,2)=[2 3 4]就可以表示另一个面了。但是有一点还是不明白,怎么样跟上面的xyzT对应呢?是应该写成追答你最好用A(a,b,c)=B来赋值,其中a,b,c可以是数字或向量或:,B是已知的值。用A=[。。。。。]这种方法赋值三维矩阵容易搞混。我还是没搞懂你为什么要用三维矩阵,按我的理解你真的不需要三维矩阵,你只需要存储坐标和对应的温度,坐标是三维的不代表你要用三维的矩阵来存储。
另外,你这样写
A=[1 1 1 15
2 2 2 20
...]
那么A是二维的,前三列是坐标,第四列是温度。
通常用三维矩阵的时候先初始化好,确定要用的三维矩阵是多大的。举个例子,国际象棋的棋盘(8*8)可以看作二维的,而每一个格子上可以放一个棋子,用数字1到6和7到12对应两方6类棋子,0表示不放棋子,那么一个8*8的矩阵,各元素是0--12,就可以表示一盘棋。现在有5个盘棋,那么就有一个三维矩阵(8*8*5),显然矩阵中每一个元素都是0到12中的一个数。
用A表示这个三维矩阵,那么A(:,:,1)表示第1个棋盘,A(:,:,2)表示第2个棋盘。。。。依次类推。
你现在这样的如果用三维矩阵的话好像不是每一个元素都有值吧?你有A(1,1,2)这里就没有值吧?就好像棋盘上这个位置坏了,放不了棋子,这时用三维矩阵浪费内存。如果你每一个元素都有值,那么用三维矩阵就可以。
来自:求助得到的回答
热心网友 时间:2023-10-13 01:13
直接赋值就可以热心网友 时间:2023-10-13 01:14
你好,请问你解决这个问题了吗?热心网友 时间:2023-10-13 01:12
在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]就可以表示另一个面
但这个方法很麻烦,
通常情况下用三维矩阵的时候先初始化好,确定要用的三维矩阵是多大的。
国际象棋的棋盘(8*8)可以看作二维的,而每一个格子上可以放一个棋子,用数字1到6和7到12对应两方6类棋子,0表示不放棋子,那么一个8*8的矩阵,各元素是0--12,就可以表示一盘棋。现在有5个盘棋,那么就有一个三维矩阵(8*8*5),显然矩阵中每一个元素都是0到12中的一个数。
用A表示这个三维矩阵,那么A(:,:,1)表示第1个棋盘,A(:,:,2)表示第2个棋盘。。。。依次类推。
热心网友 时间:2023-10-13 01:13
你这个不适合用三维矩阵吧。三维的话可不是1,1,1、2,2,2、3,3,3这样的,每一维都是从1到给定阶的。如果有3*4*5的三维矩阵那你的数据要有3*4*5个。中间不能有空的。你存储数据用二维的就可以,不一定非要用三维的,画图可以画三维的。追问谢谢,我已经弄清楚三维矩阵怎么表示了!A=[1 2 3] 用A(:,:,2)=[2 3 4]就可以表示另一个面了。但是有一点还是不明白,怎么样跟上面的xyzT对应呢?是应该写成追答你最好用A(a,b,c)=B来赋值,其中a,b,c可以是数字或向量或:,B是已知的值。用A=[。。。。。]这种方法赋值三维矩阵容易搞混。我还是没搞懂你为什么要用三维矩阵,按我的理解你真的不需要三维矩阵,你只需要存储坐标和对应的温度,坐标是三维的不代表你要用三维的矩阵来存储。
另外,你这样写
A=[1 1 1 15
2 2 2 20
...]
那么A是二维的,前三列是坐标,第四列是温度。
通常用三维矩阵的时候先初始化好,确定要用的三维矩阵是多大的。举个例子,国际象棋的棋盘(8*8)可以看作二维的,而每一个格子上可以放一个棋子,用数字1到6和7到12对应两方6类棋子,0表示不放棋子,那么一个8*8的矩阵,各元素是0--12,就可以表示一盘棋。现在有5个盘棋,那么就有一个三维矩阵(8*8*5),显然矩阵中每一个元素都是0到12中的一个数。
用A表示这个三维矩阵,那么A(:,:,1)表示第1个棋盘,A(:,:,2)表示第2个棋盘。。。。依次类推。
你现在这样的如果用三维矩阵的话好像不是每一个元素都有值吧?你有A(1,1,2)这里就没有值吧?就好像棋盘上这个位置坏了,放不了棋子,这时用三维矩阵浪费内存。如果你每一个元素都有值,那么用三维矩阵就可以。
来自:求助得到的回答
热心网友 时间:2023-10-13 01:13
直接赋值就可以热心网友 时间:2023-10-13 01:14
你好,请问你解决这个问题了吗?