MATLAB嵌套表达式

Sch*_*ges 1 matlab

只是一个简单的嵌套问题:

我有一个<100x100 double>矩阵mat_B,我cumsum.从结果矩阵中mat_A,我只需要最后一行vec_C,我需要cumsum再次使用.我的代码看起来像这样:

mat_A = cumsum(mat_B);
vec_C = cumsum(mat_A(end,:));
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果可以将所有这些放在一行代码中.我知道cumsum(mat_B)返回一个矩阵,但是如果我放在(end, :)表达式后面,它将无法工作.

我知道这听起来很傻,但我想知道在这种情况下嵌套是如何工作的.

Buc*_*orn 6

您可以跳过第一个cumsum并使用sum,因为最后一行cumsum等于sum的结果:

>> mat_B=rand(5); 
>> cumsum(mat_B)

ans =

    0.2517    0.4522    0.8838    0.3751    0.2527
    0.6847    0.7778    1.3412    0.7487    0.8376
    1.5270    1.1579    2.1404    1.2327    1.3613
    1.7115    2.0444    2.2745    2.2021    1.5247
    2.2197    2.8056    2.3398    2.5442    2.0111

>> sum(mat_B)

ans =

    2.2197    2.8056    2.3398    2.5442    2.0111
Run Code Online (Sandbox Code Playgroud)

因此

vec_C = cumsum(sum(mat_B));

应该做你想做的事.