小编Jon*_*erg的帖子

如何在不首先将其分配给局部变量的情况下索引函数返回的MATLAB数组?

例如,如果我想从中读取中间值magic(5),我可以这样做:

M = magic(5);
value = M(3,3);
Run Code Online (Sandbox Code Playgroud)

得到value == 13.我希望能够做到这样的事情之一:

value = magic(5)(3,3);
value = (magic(5))(3,3);
Run Code Online (Sandbox Code Playgroud)

免除中间变量.然而,MATLAB抱怨Unbalanced or unexpected parenthesis or bracket在第一个括号之前3.

是否可以在不首先将其分配给变量的情况下从数组/矩阵中读取值?

indexing matlab matrix return-value variable-assignment

350
推荐指数
7
解决办法
7万
查看次数

Memcache(d)vs. Varnish用于加速3层Web架构

我正在努力加快我的基准测试(3层Web架构),并且我有一些与Memcache(d)和Varnish相关的一般性问题.

  • 有什么不同?
    在我看来,Varnish是Web服务器的后面,缓存网页,不需要更改代码,只需要配置.
    另一方面,Memcached是通用缓存系统,主要用于缓存数据库的结果,并且需要更改get方法(第一次缓存查找).

  • 我可以同时使用吗?前面的Web服务器和Memcached中的Varnish用于数据库缓存?

  • 什么是更好的选择?

    (方案1 - 主要是写,
    方案2 - 主要是读取,
    方案3 - 读取和写入类似)

memcached varnish

110
推荐指数
2
解决办法
4万
查看次数

git可以将zip文件作为目录和zip文件中的文件视为blob吗?

场景

想象一下,我被迫使用一些总是存储在.zip文件中的文件.zip中的一些文件是小文本文件并经常更改,而其他文件更大但幸运的是相当静态(例如图像).

如果我想将这些zip文件放在git存储库中,每个zip都被视为一个blob,所以每当我提交存储库时,就会增加zip文件的大小...即使只有一个小文本文件在里面改变了!

为什么这是现实的

MS Word 2007/2010 .docx和Excel .xlsx文件是ZIP文件...

我想要的是

是否有任何机会告诉git不要将拉链视为文件,而是作为目录并将其内容视为文件?

优点

但是,它说不行吗?

我意识到如果没有额外的元数据,这将导致一些歧义:在git checkoutgit上必须决定是foo.zip/bar.txt在常规目录还是zip文件中创建文件.但是,我认为这可以通过配置选项解决.

两个想法如何完成(如果它还不存在)

  • 使用像git 这样的库minizip或者IO::Compress::Zip在git里面
  • 以某种方式添加一个文件系统层,以便git实际上将zip文件视为开始的目录

git zip msysgit

65
推荐指数
6
解决办法
1万
查看次数

打开太多数字时如何避免MATLAB崩溃?

有时我会启动一个MATLAB脚本并意识到太晚了,它会输出太多的数字.最终我得到了一个

线程"AWT-EventQueue-0"中的异常java.lang.OutOfMemoryError:Java堆空间

这可以很容易地在我的机器上使用

for i=1:inf
  figure;
end
Run Code Online (Sandbox Code Playgroud)

在使用128 MB Java堆的标准设置(首选项/ Java堆内存)崩溃之前,我得到大约90个数字,而将堆加倍到256 MB则给出了大约200个数字.

您是否看到了避免 Java错误消息的方法?如果没有足够的内存供另一个人使用,我希望我的脚本能够被告知而不是崩溃.

也许我可以有一个包装器figure(以某种方式?)检查有多少Java堆可用,如果没有足够的空间,它会拒绝打开一个新的数字?

更新

使用下面的答案,我得到了一个很好的图表,说明Memory Java有多少可用内容:

figure; plot(freeMem/1E6,'x'); ylabel('java.lang.Runtime.getRuntime.freeMemory [MB]'); xlabel('创建的空数字');

这是使用

for i=1:inf
    java.lang.Runtime.getRuntime.gc
    fprintf('%3.0f: %1.0f Byte free\n',i,java.lang.Runtime.getRuntime.freeMemory);
    figure;
end
Run Code Online (Sandbox Code Playgroud)

我假设开头的增加意味着垃圾收集每次调用它时只会做一些努力吗?

更新2 - 我的解决方案

使用我在这里获得的帮助,我实现了以下解决方案作为figure.m重载并调用内置figure命令:

function varargout=figure(varargin)
memcutoff = 10E6; % keep at least this amount of bytes free
memkeyboard= 3E6; % if memory drops below this, interrupt execution and go to keyboard mode
global refuse_new_figures
if refuse_new_figures
    warning('jb:fig:lowjavamem2','Java WAS …
Run Code Online (Sandbox Code Playgroud)

java matlab heap-memory jvm-crash

15
推荐指数
1
解决办法
9152
查看次数

在MATLAB中,如何在拖动滑块时执行回调?

我使用GUIDE创建了一个MATLAB GUI.我有一个带回调函数的滑块.我注意到这个回调,它应该执行'滑块移动',实际上只有在滑块移动并释放鼠标后才会运行.

是否有一种方法可以在拖动滑块时运行脚本,以便实时更新绘图?我认为需要做一些事情来阻止脚本运行太多次.

matlab user-interface callback slider matlab-guide

10
推荐指数
1
解决办法
9631
查看次数

为什么MATLAB save()调用saveobj()两次?

我定义了一个MATLAB对象class_save_test:

classdef class_save_test 
    methods
        function b=saveobj(a)
            fprintf('saveobj called.\n');
            b=a;
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试保存它时:

j=class_save_test
save('delme1.mat','j')
Run Code Online (Sandbox Code Playgroud)

我得到了输出

saveobj called.
saveobj called.
Run Code Online (Sandbox Code Playgroud)

为什么叫两次?我发现这个地方的人有同样的问题,但没有答案:-(.我用Matlab 7.11.0(R2010b中).

更新:我已向Mathworks提交了支持请求...请在下面找到答案:-).

matlab save

10
推荐指数
1
解决办法
541
查看次数

如何调试MATLAB(java)错误:超时等待窗口出现?

我正在尝试运行一个MATLAB程序,它在六个不同的数字中创建一个GUI.最后一个figure(...)命令超时:

"UIJ_AreThereWindowShowsPending - 超时等待窗口显示"

它可以在具有完全相同设置的不同计算机上运行(OS X 10.7.2,Java 1.6.0_26-b03-383-11A511和MATLAB R2011a).

我找到了一些来自有类似问题但没有解决方案的人的线程.有人认为这是一个java内存问题.我已经尝试在MATLAB中增加java的内存.我还设置了Java首选项以显示控制台,但它不会显示,我无法在任何地方找到任何Java日志文件.

有谁知道我怎么能找到这个问题的根源?为什么Java控制台不能用MATLAB打开?我在哪里可以找到MATLAB相关的java日志?

java matlab logging

10
推荐指数
1
解决办法
3677
查看次数

Excel 2010,如何使用键盘快捷键来过滤下拉框复选框?

对于Excel 2010,当我打开过滤器下拉列表时

Excel截图

...如何通过键盘快捷键进入过滤器复选框部分?跳过从"排序A到Z"到"搜索"框的所有内容,一直到复选框.

excel-2010

10
推荐指数
1
解决办法
4万
查看次数

在MATLAB中将数据拆分为训练/测试数据集?

经过一些研究,我在MATLAB中找到了两个函数来完成任务:

现在我用它cvpartition来创建n倍交叉验证子集,以及统计工具箱中的Dataset/ Nominalclasses.所以我只是想知道两者之间的区别和各自的优缺点是什么?

matlab data-mining

9
推荐指数
1
解决办法
2万
查看次数

当重载buildin函数时,避免MATLAB启动警告?

如上所述这里,我创建了自己figure.m这很好地重载内置figure命令.现在,每当我启动MATLAB时,我都会收到警告

警告:函数C:\ somepath\figure.m与MATLAB内置函数同名.我们建议您重命名该函数以避免潜在的名称冲突.

有没有办法停用此警告,因为在我的情况下它是理想的行为?

您可能会说我应该以不同方式调用我的函数而不是重载,但我觉得我的开发系统这种重载是正确的方法...

更新

正如Aabaz所提到的,您可以使用全局关闭此警告

warning off MATLAB:dispatcher:nameConflict
Run Code Online (Sandbox Code Playgroud)

需要在matlabrc.m(在设置路径之前)的开始处进行.但是,我仍然会对一个解决方案感兴趣,该解决方案可以特定地删除此错误消息以重载figure.m(或一些自定义的函数列表)而不是所有函数.我猜我在这里要求太多了一些;-)?

matlab overloading suppress-warnings

6
推荐指数
1
解决办法
2957
查看次数