相关疑难解决方法(0)

关于形状不可知的切片的ndarrays

在这篇文章中,我使用的术语切片来指代一个子阵列B_i的的Ñ维阵列A,使得size(B_i, d)为1,对于一些尺寸d. Asize(A, d)这些切片组成,沿着维度连接d.

例如,如果ndims(A)是6并且d是3,那么表单的表达式

A(:, :, i, :, :, :)
Run Code Online (Sandbox Code Playgroud)

i1:size(A, d)代表所有片(沿维度d组成)A.

类似表达式的问题A(:, :, i, :, :, :)在于它不能象征性地概括为沿着与具有不同于6的维数的数组中的3的维度不同A的切片.例如,为了沿着维度2 获得切片,需要不同的表达式,A(:, i, :, :, :, :).这意味着这样的表达式在代码中是无用的,这些代码与要从中提取切片的某个数组的形状无关.

下面的函数是我的matlab-noob尝试实现与形状无关的切片.(这个名字slice已经被采用,因此我调用了函数hslice,简称为hyperslice.)函数的策略是将输入数组重新整形为一个合适的三维数组,沿着重新形成的数组的第二维获取所需的切片,并将结果重新整形为具有原始输入数组的切片形状.

function out = hslice(ndarray, d, i)
    sz = size(ndarray); …
Run Code Online (Sandbox Code Playgroud)

matlab multidimensional-array

13
推荐指数
1
解决办法
417
查看次数

标签 统计

matlab ×1

multidimensional-array ×1