www.ypnh.net > MATLAB中如何将三维数组转置?

MATLAB中如何将三维数组转置?

高维数组的转置使用permute函数 具体调用语法 b = permute(a,order) 按照向量order指定的顺序重排a的各维.b中元素和a中元素完全相同.但由于经过重新排列,在a、b访问同一个元素使用的下标就不一样了.order中的元素必须各不相同.例子>> a=rand(4,5,6);>> size(a) ans = 4 5 6>> b = permute(a,[2 1 3]);>> size(b) ans = 5 4 6 原来a是4x5x6的矩阵 按照顺序[2 1 3]转置之后,原来的第一,第二维顺序改变 b的大小是5x4x6

6*30*15=2700,与原始数据量不同.所以用reshape一下子就转换了,不用编程.

元胞数组,例如矩阵a是元胞数组 可以这样 a={'jkghkfh',[1 25 4 8];eye(3),{'ddfsd','goodmarlab'}} 运行结果 a = 'jkghkfh' [1x4 double] [3x3 double] {1x2 cell } 这样 a就和一般的数组就不一样

如果你说的是转换成灰度矩阵的话用rgb2gray函数.

举个例子,你看看就明白了A = rand(81,81,81);n = 20;A1 = A(:,:,n); % 81*81 二维A2 = A(:,n,:); % 81*1*81 三维A3 = A(n,:,:); % 1*81*81 三维% 将三维转为 81*81 二维A22 = reshape(A2,81,81);A32 = reshape(A3,81,81);

如果每次只取一个波段进行计算的话,直接for m = 1:200 dr=[salinas_corrected(:,:,m)];end就可以了每次使用dr进行计算,而dr的维数就是500*300.

“空”数组是matlab为操作和表述需要而专门设计的一种数组.二维“空”数组,用一对方括号表示.至于其他高维数组,只要数组某维长度为0或若干维长度均为0,则该数组就是“空”数组.下面我们就向大家介绍一下matlab中的“空”数组

matlab多维数组操作1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组.2.利用标准数组函数创建多维数组 A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法.3.利用

申请三维变量空间,然后赋值.比如你的两个二维数组是 a1=[1,2,3;3,4,5;5,6,7]; a2=[4,3,2;2,1,0;6,7,8]; a=zeros(3,3,2)%先申请变量空间; a(:,:,1)=a1;%赋值 a(:,:,2)=a2; 这时a就是你想要的3维矩阵

平时,我们说 “矩阵转置”,矩 是长方形(含正方形),矩阵 是 2维矩形 阵列,例如 x 向 分为 m 列 , y 向 分为 n 行. 转置 则是把 行 换到列,列换到行.即,把 (x,y) 转置 为 (y,x).三维数组的转置,没有定义.把 (x,y,z) 变换为 (z,x,y) 还是 (y,z,x) 还是 没人知道.但只要你规定了游戏规则,就有办法实现.三维数组 常用操作 是 translate, scale, rotate, 即空间 平移,缩放,转动.

网站地图

All rights reserved Powered by www.ypnh.net

copyright ©right 2010-2021。
www.ypnh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com