小编use*_*993的帖子

保持顺序和重复的独特功能的类比(MATLAB)

假设我有数据: x = [3,3,1,1,1,2,2,1,1,1,1]
我想要输出:
y = [3,1,2,1]
使用unique()函数我可以得到:
z = [3,1,2]

但是如你所见,我最终错过了"一个".所以,我试着写一个循环,但是没有做我应该做的事情.我希望它删除其中一个重复值,循环应该确保只剩下一个值.但是,输出是:
x = [3,3,1,1,2,1,1]
循环:
for i=1:length(x)
if x(i)==x(i+1)
x(i)=[];
end;
end;
有没有办法像y一样生成输出?我的循环中的错误在哪里?

matlab

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

Eclipse建议使用Null Pointer异常,但我相信我初始化了我的对象

正如标题所说,我有NPE错误.它发生在线:

while (getWidth() > bowl.getX()+10) {
Run Code Online (Sandbox Code Playgroud)

如果我删除它,它会显示它发生在下一行:

bowl.move(10.0, 0);
Run Code Online (Sandbox Code Playgroud)

我得出结论,日食没有看到我的"碗"初始化.为什么?不是"新GOval"处理的吗?我在其中一个帖子中看到一个解决方案是将声明和初始化分成不同的行,但我认为它不太可能是主要的解决方案(此外,它对我的​​情况没有帮助)对此有任何建议码?

此代码应该创建一个圆圈,将其放在屏幕的左上角,并在单击鼠标按钮后移动圆圈.圆圈已成功绘制,但点击后会显示NPE消息.

import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;

public class animation extends GraphicsProgram {

public void init() {
    GOval bowl = new GOval(10,10);
    add(bowl);
    addMouseListeners();
}


public void mouseClicked(MouseEvent e) {
        while (getWidth() > bowl.getX()+10) {
        bowl.move(10.0, 0);
        pause(50);
    }
}

private GOval bowl; 
}
Run Code Online (Sandbox Code Playgroud)

java eclipse nullpointerexception

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

必须在方法中指定return,但我希望方法再次调用自身而不是返回

我写了一个方法.它正在模仿翻转硬币并试图检测"连续三个头"的案例.一旦出现连续三个头(counter = 3),该方法返回到达此点所花费的迭代次数(genCounter).

问题是eclipse说这个方法应该返回"int",但我确实返回了genCounter.(counter和genCounter都是int实例变量).正如我从浏览互联网所理解的那样,问题在于我没有在其他地方返回任何东西.但我不希望它返回任何东西,万一我想从头开始我的方法.

private int isThree(){
    String coin = rg.nextBoolean()?"Heads":"Tails";
    if (coin.equals("Heads")){
        counter += 1;
    }else{
        counter = 0;
    }
    genCounter += 1;
    if (counter == 3) {
        return genCounter;
    }else{
        isThree();
    }
}
Run Code Online (Sandbox Code Playgroud)

java methods return

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

标签 统计

java ×2

eclipse ×1

matlab ×1

methods ×1

nullpointerexception ×1

return ×1