只是一个简单的嵌套问题:
我有一个<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, :)表达式后面,它将无法工作.
我知道这听起来很傻,但我想知道在这种情况下嵌套是如何工作的.
您可以跳过第一个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));
应该做你想做的事.