【问题标题】:compare matrix matlab比较矩阵matlab
【发布时间】:2011-11-27 23:02:31
【问题描述】:

在下面的代码中我很失望,因为我想让 matlab 做我能做的事。 这段代码实际上运行良好,如果我为每一步都手动编写它,这当然是绝对愚蠢的:) 但是如果我尝试使用循环来执行它,正如你在评论部分中看到的那样,任何人都可以指出错误:( 再次感谢, 毫克

代码目的:问matlab是否x(1)

    clear;
x=[0 2 4 6 8 10];
y=[0 1.1 1.3 2 2.1 3.6 4.5 8.3 9];
z=zeros(9);
for j=1:length(y)
%     for i=1:length(x)
%         for k=1:length(y)
%         if (x(i)<y(j))&&(y(j)<x(i+1))
%             z(j,k)=(x(1)+x(2))./2;
%         else 
%             z(j,k)=y(j);
%             
%         end
%         end
%    end
% end
       if (x(1)<y(j))&&(y(j)<x(1+1))
            z(j,1)=(x(1)+x(2))./2;
        else 
            z(j,1)=y(j);

        end
        if (x(2)<y(j))&&(y(j)<x(2+1))
            z(j,2)=(x(2)+x(3))./2;
        else 
            z(j,2)=y(j);
        end
        if (x(3)<y(j))&&(y(j)<x(3+1))
            z(j,3)=(x(3)+x(4))./2;
        else 
            z(j,3)=y(j);
        end
 end

【问题讨论】:

    标签: math matlab matrix


    【解决方案1】:

    在循环中,您编写z(j,k),但在没有循环的代码中,您似乎在执行z(j,i)

    同样在循环中你写:(x(1)+x(2)),没有循环,看起来像(x(i)+x(1+i))

    你应该写:

    for j=1:length(y)
        for i=1:length(x)
            if (x(i)<y(j))&&(y(j)<x(i+1))
                z(j,i)=(x(i)+x(i+1))./2;
             else 
                z(j,i)=y(j);
            end
        end
    end
    

    【讨论】:

      猜你喜欢
      • 2013-08-08
      • 2010-10-30
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多