matlab中 for 与 if 的嵌套

t=[0:0.1:5];
Y=[];
for k=0:0.1:5
if sin(t)==0 Y=1,
else if sin(t)==0.5 Y=0.25,
else if sin(t)==-0.5 Y=0.25,
else Y=0,end
end;
plot(t,Y);
end
求帮忙修正一下

1.修改一(按照你的思路):

t = [0:0.1:5];
for k = 1:length(t) 
    if sin(t(k)) == 0
        Y(k) = 1;
    elseif sin(t(k)) == 0.5
        Y(k) = 0.25;
    elseif sin(t(k)) == -0.5
        Y(k) = 0.25;
    else
        Y(k) = 0;
    end
end
plot(t,Y,'or','Markersize',6);


2.修改二(执行效率更高):

t = 0:0.1:5;
Y = 0 + (sin(t)==0)*1 + (sin(t)==0.5)*0.25 + (sin(t)==-0.5)*0.25;
plot(t,Y,'or','Markersize',6);
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-01
t=[0:0.1:5];
for k=1:length(t) 
    if sin(t(k))==0
        Y(k)=1;
    elseif sin(t(k))==0.5
        Y(k)=0.25;
    elseif sin(t(k))==-0.5
        Y(k)=0.25;
    else
        Y(k)=0;
    end
end
plot(t,Y);

你也可以不用循环实现

t = 0:0.1:5;
Y = 0 + (sin(t)==0)*1 + (sin(t)==0.5)*0.25 + (sin(t)==-0.5)*0.25;
plot(t,Y);

追问

问下 我想画出 每个T对应的各个Y的点不是t和Y的线 应该怎么画

追答plot(t,Y,'+');

本回答被提问者和网友采纳
第2个回答  2015-04-23
t=[0:0.1:5];
Y=[];
for K=0:0.1:5
if sin(t)==0
Y=1,
else if sin(t)==0.5
Y=0.25,
else if sin(t)==-0.5
Y=0.25,
else Y=0;
end
end;
end
plot(t,Y)
end
少了一个end

matlab里面的for循环嵌套
这是matlab里面的for循环嵌套if的用法。举例说明具体的使用方法,详解如下:1、首先,创建一个新的子程序loopcolor,如下图所示。2、其次,完成上述步骤后,定义几个变量,所有变量都是整数类型,代码如下图红框所示。3、接着,完成上述步骤后,为mycolor分配一个值, mycolor = 0,如下图所示。4...

matlab中 for 与 if 的嵌套
1.修改一(按照你的思路):t = [0:0.1:5];for k = 1:length(t) if sin(t(k)) == 0 Y(k) = 1; elseif sin(t(k)) == 0.5 Y(k) = 0.25; elseif sin(t(k)) == -0.5 Y(k) = 0.25; else Y(k) = 0; endendplot(t,Y,'or'...

matlab中for循环嵌套if语句
1、新建一个子程序loopcolor。2、然后是定义几个变量,都是整数型。Dim myrow As Integer Dim mycol As Integer Dim mycolor As Integer。3、为mycolor赋值。mycolor = 0。4、对myrow进行循环。5、在myrow的循环里面再嵌套另外一个循环mycol。6、再循环里面,分别选中单元格,并为这些单元...

matlab中for循环嵌套if语句
1、新建一个子程序loopcolor。2、然后是定义几个变量,都是整数型。Dim myrow As Integer Dim mycol As Integer Dim mycolor As Integer。3、为mycolor赋值。mycolor = 0。4、对myrow进行循环。5、在myrow的循环里面再嵌套另外一个循环mycol。6、再循环里面,分别选中单元格,并为这些单元...

求大神解答一个matlab中的for循环嵌套if选择语句
1、最后缺少一个end;2、这句输出没什么意义:disp A(i)=A(j);3、这句完全多余:else continue 给你写了一段代码供参考:生成测试数据 A = [randperm(19) randperm(19)+1] c = 0; % 计数器 for i=1:19 for j=20:38 if A(i)==A(j) c = c + 1; fprintf('%...

matlab条件语句用法
for 语句不能这样用,应该用for嵌套语句:S0=50;K=50;r=0.1;sigma=0.4;T=0.4167;q=0;t=0.0833;random_A=randn(10);for i=1:10;for j=1:10 A(i,j)=S0*exp((r-sigma^2\/2)*T+sigma*random_A(i,j)*sqrt(T));if A(i,j)>K;B(i,j)=0;else B(i,j)=(K-A(i,j...

在MATLAB中,如何找出矩阵的非零元素。并且输出它所在的行和列。只要非...
0 1 0 1 1 1 1 1 0 1 0 1 1 0 从矩阵思考,按这样写。再干什么的话,不行你就for吧。嵌套一个for,搞定。>> for i=1:5 for j=1:5 if b(i,j)==1 R(i,j)%这里写你需要做的事情,end end end ...

matlab for中嵌套if的问题
for k = 1:length(t)if sin(t(k)) == 0 Y(k) = 1;elseif sin(t(k)) == 0.5 Y(k) = 0.25;elseif sin(t(k)) == -0.5 Y(k) = 0.25;else Y(k) = 0;end end plot(t,Y,'or','Markersize',6);2.修改二(执行效率更高):t = 0:0.1:5;Y = 0 + (sin...

matlab中for循环嵌套两次if判断,求大神帮忙
题主的matlab中for循环嵌套两次if判断,你这样写是没有问题的。如实在想不通的话,可以把第一个if判断语句,放在第二个if判断语句后面。其结果都是一样的。

matlab双重for循环嵌套if向量化
注意:改写的代码有以下两点假设:(1)cnt的初值为1;(2)tst的size和Lu相同,若不满足if的条件,元素默认值为0。如果上述条件不满足,则代码还需要作一些调整。有问题请追问。b1 = Cb(1:x,1:y)-(Mb+Db*sign(Mb));b2 = Cr(1:x,1:y)-(1.5*Mr+Dr*sign(Mr));idx = b1<abs(1....

相似回答