小编Dav*_*d K的帖子

在命令窗口中禁用自动滚动

我在Matlab编写的很多代码都有一个非常详细的输出.程序运行时,信息将打印到命令窗口,每个新行都会自动滚动到底部.当我想更仔细地读取某些输出或向上滚动以查看较旧的输出时,这就成了问题.我可以向上滚动,但只能打印一个新行,通常不到一秒钟.

有谁知道是否可以在Matlab窗口中关闭此自动滚动?我在许多不同的Matlab版本中工作,具体取决于机器,所有这些都会发生.对此的答案可能是"不",但我发誓我记得曾经有过这个功能.

matlab scroll

11
推荐指数
1
解决办法
7527
查看次数

将SecureRandom与SHA-256一起使用

我一直在使用带有种子SHA1PRNG算法的SecureRandom来创建两个进程之间的共享随机性.我最近了解到SHA1根据NIST的标准被弃用,所以我们正在努力切换到SHA256.我发现的问题是SecureRandom仅支持SHA1PRNG,至少根据Oracle的文档.我想知道是否有办法将SecureRandom与SHA256一起使用,或者可能更好,什么是使用SecureRandom的合适替代方案?

java cryptography sha prng

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

调试时强制从函数返回

我正在调试MATLAB R2016a中的程序,并希望在不完成该功能的情况下从子函数返回.例如,您可以编写代码:

if(conditionMet)
  return;
end
Run Code Online (Sandbox Code Playgroud)

如果满足条件,它将强制函数提前结束并继续在调用者代码中.在我调试时,我想强制该函数提前结束,就像我遇到了一个return命令一样.当我return在调试模式下输入时,似乎没有任何事情发生.有没有办法强制功能提前结束并继续运行?

debugging matlab

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

使用ProcessBuilder运行.java文件

我是Windows XP上Eclipse工作的新手程序员,我需要运行多个进程(这将是一个多计算机系统的模拟).我的初始hackup使用多个线程到多个类,但现在我正在尝试用进程替换线程.

从我的阅读中,我发现ProcessBuilder是最佳选择.我已经尝试了下面看到的许多版本的输入,但是在我的生活中无法弄清楚如何正确使用它.我试图运行我以前创建的.java文件作为类(我已修改).我最终只是制作了一个虚拟的test.java,以确保我的进程正常工作 - 它唯一的功能是打印它运行.

我的两个文件的代码如下.我正确使用ProcessBuilder吗?这是读取子进程输出的正确方法吗?任何帮助将非常感激.

  • 大卫

编辑:解决方案是声明ProcessBuilder("java.exe"," - cp","bin","Broker.test");

主要过程

package Control;
import java.io.*;
import java.lang.*;

public class runSPARmatch {

/**
 * @param args
 */
public static void main(String args[]) {
    try {       
        ProcessBuilder broker = new ProcessBuilder("javac.exe","test.java","src\\Broker\\");
        Process runBroker = broker.start();

        Reader reader = new InputStreamReader(runBroker.getInputStream());
        int ch;
        while((ch = reader.read())!= -1)
            System.out.println((char)ch);
        reader.close();

        runBroker.waitFor();

        System.out.println("Program complete");

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud)

java multiprocessing processbuilder

5
推荐指数
1
解决办法
6367
查看次数

矩阵乘法给出两个不同的答案

这是一些简单的代码,显示了我所看到的内容:

A = randn(1,5e6)+1i*randn(1,5e6);
B = randn(1,5e6)+1i*randn(1,5e6);

sum(A.*conj(B)) - A*B'
sum(A.*conj(B)) - mtimes(A,B')
A*B' - mtimes(A,B')
Run Code Online (Sandbox Code Playgroud)

现在,底部显示的三种方法应该做同样的事情,所以答案应该是零,对吧?错误!差异很小,虽然不够小,我认为它们可以忽略不计.另外,随着A和B的长度增加,误差增加.

有谁知道这些方法之间的实际区别是什么?我知道代码中可能有快捷方式,但如果可能的话我想量化一下.Matlab会在任何地方发布差异吗?我环顾四周,但没找到任何东西.

matlab matrix-multiplication

3
推荐指数
1
解决办法
135
查看次数

组合对应于向量中重复的相邻值的值

我需要看起来像这样的数据向量:

A = [1 2 3 3 4 5 6 6 5 4 4 3 3 3 3];
B = [1 5 9 6 4 6 8 2 1 5 7 8 3 2 6];
Run Code Online (Sandbox Code Playgroud)

我想删除所有重复的相邻值A并将相应的值相加B,结果为

A = [1 2 3  4 5 6  5 4  3];
B = [1 5 15 4 6 10 1 12 19];
Run Code Online (Sandbox Code Playgroud)

我可以unique像在这个答案中描述的那样使用,但是这将组合所有重复的值,重复的值,无论顺序如何.我也可以使用diff,如本问题所述,但我不知道如何记录将合并的索引.

我总是可以迭代矢量,但这似乎是不必要的乏味,我觉得应该有一个更优雅的解决方案.有没有办法在几行中实现这一目标?

arrays indexing matlab vector

3
推荐指数
1
解决办法
41
查看次数

Integer或Boolean的toString(),不返回Object ID

我有一组表示数字逻辑门的类,我想创建一个toString()命令,它将以递归方式通过并打印它们.问题是它们可以包含Gate,Boolean或Integer,当我调用Boolean.toString()或Integer.toString()时,将打印Object ID而不是指定的值.有没有办法在这些对象上一般调用toString()(或类似的)命令并让它们打印指定的值?

使用下面的代码,输出看起来像:"AND([I @ 6ca1c,[Z @ 1bf216a]"

我希望它看起来像:"AND(11,true)"

public static class Gate{
    public Object in1;
}

public static class ANDgate extends Gate{

    public Object in2;

    public ANDgate(Object first,Object second){
        in1 = first; // these can be Integer, Boolean, or another Gate
        in2 = second;
    }
    public String toString(){
        return("AND(" + in1 + "," + in2 + ")");
    }
}

public static class NOTgate extends Gate{

    public NOTgate(Object obj){
        in1 = obj; // this can be Integer, Boolean, or another Gate …
Run Code Online (Sandbox Code Playgroud)

java object tostring

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