xcxd.net
当前位置:首页 >> mAtlAB三维矩阵转为二维矩阵 >>

mAtlAB三维矩阵转为二维矩阵

方法1:采用reshape处理.方法2:采用:squeeze 处理.方法3:在定义的时候,抽取元素形式为A=B(:,:,i).1.matlab中三维数组顺序是:行、列、页.二维数组只有行、列.如果两只之间赋值,有一个维数缩减问题需要注意.前者可以缩减为

a=rand(m,n,6)b=reshape(m*n,6)一个示例:>> a=rand(2,3,2)a(:,:,1) = 0.8147 0.1270 0.6324 0.9058 0.9134 0.0975a(:,:,2) = 0.2785 0.9575 0.1576 0.5469 0.9649 0.9706>> b=reshape(a,6,2)b = 0.8147 0.2785 0.9058 0.5469 0.1270 0.9575 0.9134 0.9649 0.6324 0.1576 0.0975 0.9706

设原来三维自数组为知a,用道permute(a(:,1,:),[1 3 2]):>> a=rand(2,3,4) a(:,:,1) = 0.3046 0.1934 0.3028 0.1897 0.6822 0.5417 a(:,:,2) = 0.1509 0.3784 0.8537 0.6979 0.8600 0.5936 a(:,:,3) = 0.4966 0.8216 0.8180 0.8998 0.6449 0.6602 a(:,:,4) = 0.

用reshape

reshape函数可以帮你,比如b=reshape(a,2,4,2);b就是你所求的新矩阵.

举个例子,你看看就明白了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);

A= zeros(24,281,41);B = zeros(281,41);B(:,:) = A(1,:,:);

你好!彩色图像就是三维,分别是RGB通道除非你转成黑白的图片,才会成为二维可以用f=rgb2gray(I);来转成黑白图其中I是原来的三维彩色图,f是转后的二维黑白图如有疑问,请追问.

如果是叠加成三维,可以使用一下命令:A(:,:,1)=a,A(:,:,2)=B,A(:,:,3)=c另外建议使用cell类型或者struct类型,存储,方便数据的提取运算.

不同维数的拼接可以用细胞数组实现:clear all; clc; A=ones(4,2,3); B=ones(2,2)*2; A=mat2cell(A); B=mat2cell(B); C=[A B]-----------------------运行结果 C = [4x2x3 double] [2x2 double]--------------------C{1},C{2}分别是A,B

网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com