求大神啊!matlab可以在循环体中改变循环变量来改变循环次数吗?如何进行呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求大神啊!matlab可以在循环体中改变循环变量来改变循环次数吗?如何进行呢?相关的知识,希望对你有一定的参考价值。

j=1;
for i=1:10
n(j)=i;
j=j+1;
i=i+3;
end
程序运行结果为n=[1 2 3 4 5 6 7 8 9 10]
我想期望结果是n=[1 4 7 10]
我看到Visual Basic里面可以这样做,Matlab里面怎么做呢?

Matlab里 给的解释是:
Because MATLAB resets the loop index to the next value when it returns to the top of the outer loop,it ignores any changes that took place within a nested loop.
貌似不可以这样做,想要得到你期望的结果,可以这样写:
j=1;
for i=1:3:10
n(j)=i;
j=j+1;
end追问

看来Matlab还是没有其他语言灵活啊,你说的这个1:3:10我知道

参考技术A for i =1:3:10
x(i)=i;
end
x(find(x==0))=[]

x =

1 4 7 10

另一种方法:

x=[1:3:10]

x =

1 4 7 10追问

我只是举个例子啊,我现在做的题目程序里面是变步长的,用Matlab怎么在循环体中改变循环变量来改变循环次数吗?

追答

可以改变的嘛。
for i=1:4
x=[1:i:30]
end

x =

Columns 1 through 19

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Columns 20 through 30

20 21 22 23 24 25 26 27 28 29 30

x =

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

x =

1 4 7 10 13 16 19 22 25 28

x =

1 5 9 13 17 21 25 29
对不同的i,就有不同的步长,就有不同的x

追问

我的意思是变步长啊,循环之前不知道步长,步长是根据循环计算得到的,每个步长可能不一样,就是在循环体“里面”改变循环变量,而不是在循环外面用1:3:10

追答

我写的不是1:3:10
我写的是1:i:30
看清楚拉。。

java实现多个接口问题,急求大神啊

package 图书馆管理系统v10;
import java.io.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
*
* @author wys
*/
public class Welcome_login implements ItemListener,ActionListener


JFrame jf1 = new JFrame("登陆界面");
JLabel jl1 = new JLabel("请选择您的登录身份");
JRadioButton jrb1 = new JRadioButton("读者",true);
JRadioButton jrb2 = new JRadioButton("管理员");
ButtonGroup bg1 = new ButtonGroup();
JButton queding = new JButton("确定");
JButton quxiao = new JButton("取消");
JPanel jp1 = new JPanel(new GridLayout(1,2));
JPanel jp2 = new JPanel(new GridLayout(1,2));

public void go()

Container container = jf1.getContentPane();
container.setLayout(new GridLayout(3,1));
jf1.setSize(300,300);
jf1.setVisible(true);
bg1.add(jrb1);bg1.add(jrb2);
container.add(jl1);
container.add(jp1);
container.add(jp2);
jp1.add(jrb1);jp1.add(jrb2);
jp2.add(queding);jp2.add(quxiao);
jrb1.addItemListener(this);
jrb2.addItemListener(this);
queding.addActionListener(this);
quxiao.addActionListener(this);

public void stop()

jf1.setVisible(false);


public void itemStateChanged(ItemEvent e)



public void acitonPerformed(ActionEvent e)




提示我没有覆盖actionPerformed这个方法,请问这是为什么啊,这个毛病呢困扰我好久了额,求解~

参考技术A 覆盖时,子类方法的名称、参数签名和返回类型必须与父类方法的名称、参数签名和返回类型一致。
楼主可能 implements 了接口,但没有对接口里的actionPerformed方法写实现吧
参考技术B actionPerformed这个方法是在actionListener接口中的,既然你实现了这两个接口,那么就要把接口中的所有方法都实现才可以。这是JAVA中规定的。你这个方法重写过了没? 参考技术C 你拼错了actionPerformed方法,那你那个就是它的另一方法啦,当然会提示你重写。本回答被提问者采纳 参考技术D 这个,那个,咦,好像单词拼错了啊acitonPerformed 第5个回答  2012-09-02 能把那两个接口也发出来吗

以上是关于求大神啊!matlab可以在循环体中改变循环变量来改变循环次数吗?如何进行呢?的主要内容,如果未能解决你的问题,请参考以下文章

Linux里的终端用mkdir创建目录提示权限不够怎么解决求大神啊

怎么重装系统啊,我电脑没有 first boot,求大神啊

网页中如何隐藏iframe中的垂直滚动条,但依然可以用滚轮实现页面滚动???求大神啊

java实现多个接口问题,急求大神啊

WIN7系统,CAJ程序无法运行,提示“获取My Documents目录错误”!!!求大神啊

win7 下的Oracle安装问题 求大神 求大神啊!!!Oracle 11g R2 为啥没有找到database control - orcl?