📄 cpreduce.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -