【问题标题】:Submatrix based on size vector基于大小向量的子矩阵
【发布时间】:2015-05-07 02:53:48
【问题描述】:

好像这个问题应该很常见,但是我没有找到好的重复...

我正在实现具有可变大小的多维输出的 2 级 S-Function。状态必须在固定大小的 Dwork 向量中,因此我将输入矩阵零填充到输入允许的最大大小,然后将其重塑为向量。

当我将其重新整形为矩阵以进行输出时,我需要将其修剪回正确的大小。

函数需要足够通用以支持任意数量的维度。输出的大小存储在一个大小数组中。

例如,我可能有一个 500x500 的矩阵 N,和一个大小数组 S = [40 25]。我需要一个可以给我 N(1:S(1), 1:S(2)) 的 MATLAB 表达式,但它需要适用于任意数量的维度,所以我不能像那样简单地对其进行硬编码。

【问题讨论】:

  • 你在找m代码还是c++代码?

标签: matlab submatrix


【解决方案1】:

这是m代码中的一个解决方案:

%your input
M=rand(10,10,10);
S=[2,3,4]
%generate indices:
Index=arrayfun(@(x)(1:x),S,'uni',0)
%use comma separated list to index:
smallM=M(Index{:})

【讨论】:

    猜你喜欢
    • 2022-12-03
    • 2013-02-13
    • 1970-01-01
    • 2014-03-19
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多