我想找到一种矢量化方法来计算矢量的累积和,但是有上限和下限.
在我的例子中,输入只包含1和-1.您可以在答案中使用此假设.当然,也欢迎更通用的解决方案.
例如:
x = [1 1 1 1 -1 -1 -1 -1 -1 -1];
upper = 3;
lower = 0;
s = cumsum(x) %// Ordinary cumsum.
s =
1 2 3 4 3 2 1 0 -1 -2
y = cumsumlim(x, upper, lower) %// Cumsum with limits.
y =
1 2 3 3 2 1 0 0 0 0
^ ^
| |
upper limit lower limit
Run Code Online (Sandbox Code Playgroud)
当累积总和达到上限(在第3个元素)时,它将不再增加.同样,当累积总和达到下限(在第7个元素)时,它将不再减少.for循环版本将是这样的:
function y = cumsumlim(x, upper, lower)
y …Run Code Online (Sandbox Code Playgroud) 我添加 & 提交 & 推送了几个 PNG 文件到我的 git repo 中,但不幸的是,我有一个不正确的 .gitattributes 文件,如下所示:
* text
# no settings for PNG files
Run Code Online (Sandbox Code Playgroud)
PNG 文件被 git 视为文本文件。现在我无法再打开它们,而且我也丢失了它们的原始副本。有什么办法可以恢复它们吗?谢谢!
更新:.gitattributes添加 PNG 文件时已经在 repo 中。这意味着我无法在提交历史记录中找到PNG 文件的良好状态。所有提交都是在 Windows 上进行的。