cpreduce.m
来自「CELP (CELl Processing) is a functional p」· M 代码 · 共 20 行
M
20 行
function [varargout] = cpreduce(varargin)%CPREDUCE Analogue of Lisp's REDUCE.% Y = CPREDUCE(F,X,X0) returns F(F(...F(F(X0,X{1}),X{2}),...),X{N}). X% must be 1-dimensional cell array otherwise it is converted using% NUM2CELL.% Y = CPREDUCE(F,X) is equivalent to Y = CPREDUCE(F,X(2:end),X{1}).%% Examples% --------%% %Convert to vector% v = cpreduce(@(x,y) [x;y],[1 2;3 4])%% %Sum% s = cpreduce(@(x,y) x+y,1:10)%% %Cumulative function% cumf = @(f) @(varargin) cpreduce(@(x,y) [x;f(x(end),y)],varargin{:});% cumsum2 = cumf(@(x,y) x+y);% cumsum2(1:10)==cumsum(1:10)'
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?