返回介绍

多维数组

发布于 2019-08-26 14:10:43 字数 1493 浏览 1055 评论 0 收藏 0

MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros, ones, rand, 或randn函数来产生。例如,

    R = randn(3,4,5);
    

生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。

三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在后面这些情形中,第k个矩阵的第(i, j)个元素用A(i,j,k)表示。

4阶魔方的MATLAB和杜勒的版本不同在于交换了两列。许多魔方可以通过交换列产生。语句

    p = perms(1:4);
    

生成4! = 24个1:4的排列。第k个排列是行矩阵p(k,:),那么

    A = magic(4);
    M = zeros(4,4,24);
    for k = 1:24
       M(:,:,k) = A(:,p(k,:));
    end
    

在三维数组M中保存有24项的魔方序列。M的大小为

    size(M)
    
    ans =
         4     4    24
    
    
    
    

生成的序列中第三个是杜勒的。

    M(:,:,3)
    
    ans =
        16     3     2    13
         5    10    11     8
         9     6     7    12
         4    15    14     1
    

语句

    sum(M,d)
    

通过改变第d个下标计算和。因此

    sum(M,1)
    

是一个1*4*24的数组,包含24个相同的以下行向量

    34    34    34    34
    

    sum(M,2)
    

是一个4*1*24的数组,含有24个相同的以下列向量。

    34
    34
    34
    34
    

最后,

    S = sum(M,3)
    

把序列中的24个矩阵相加。结果的尺寸是4*4*1,故看起来象4*4数组。

    S =
       204   204   204   204
       204   204   204   204
       204   204   204   204
       204   204   204   204
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文