matlab为什么我这个程序不循环这个程序的思路是,首先产生一个2行1000列的矩阵,矩阵的每一列代表平面上的一个点的坐标,然后把满足要求的点挑出来,但是为什么我这个程序输入是那些点输出

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 05:33:25

matlab为什么我这个程序不循环这个程序的思路是,首先产生一个2行1000列的矩阵,矩阵的每一列代表平面上的一个点的坐标,然后把满足要求的点挑出来,但是为什么我这个程序输入是那些点输出
matlab为什么我这个程序不循环
这个程序的思路是,首先产生一个2行1000列的矩阵,矩阵的每一列代表平面上的一个点的坐标,然后把满足要求的点挑出来,但是为什么我这个程序输入是那些点输出还是那些点根本没循环是怎么回事?
u=unifrnd(-0.4,0.4,2,1000);
s=size(u);
x=cell(2,1000);
y=cell2mat(x);
j=1;
for i=1:s(1,2)
ra=[-60 -60 -60;0 -17.32 17.32;20 -10 -10];
rb=[0 0 0;0 -47.63 47.63;55 -27.5 -27.5];
R1=[cos(u(1,i)) -sin(u(1,i)) 0;sin(u(1,i)) cos(u(1,i)) 0;0 0 1];
R2=[cos(u(2,i)) 0 sin(u(2,i));0 1 0;-sin(u(2,i)) 0 cos(u(2,i))];
R=R1*R2;
L=ra-R*rb;
c=[1;0;0];
f=R*c;%平面法向量
M1=[f(1) f(2) f(3);L(2) -L(1) 0;0 -L(3) L(2)];
N1=[f(1)*(-35);-60*L(2);-20*L(2)];
M2=[f(1) f(2) f(3);L(5) -L(4) 0;0 L(6) -L(5)];
N2=[f(1)*(-35);L(4)*17.32-60*L(5);L(5)*10-L(6)*17.32];
M3=[f(1) f(2) f(3);L(8) -L(7) 0;0 L(9) -L(8)];
N3=[f(1)*(-35);-L(7)*17.32-60*L(8);L(8)*10+L(9)*17.32];
a(:,1)=pinv(M1)*N1;
a(:,2)=pinv(M2)*N2;
a(:,3)=pinv(M3)*N3;
o=[-35;0;0];
r1=norm((a(:,1)-o));
r2=norm((a(:,2)-o));
r3=norm((a(:,3)-o));
if r1

matlab为什么我这个程序不循环这个程序的思路是,首先产生一个2行1000列的矩阵,矩阵的每一列代表平面上的一个点的坐标,然后把满足要求的点挑出来,但是为什么我这个程序输入是那些点输出

不是没有循环,而是你的条件一直满足.

 

你把if那里加上else测试一下就知道了,如果用以下代码,什么显示都没有,但是把我的那句注释uncomment,你会看到很多个显示的,证明是你的判断条件有误:

 

代码:

u=unifrnd(-0.4,0.4,2,1000);
s=size(u);
x=cell(2,1000);
y=cell2mat(x);
j=1;
for i=1:s(1,2)
    ra=[-60 -60 -60;0 -17.32 17.32;20 -10 -10];
    rb=[0 0 0;0 -47.63 47.63;55 -27.5 -27.5];
    R1=[cos(u(1,i)) -sin(u(1,i)) 0;sin(u(1,i)) cos(u(1,i)) 0;0 0 1];
    R2=[cos(u(2,i)) 0 sin(u(2,i));0 1 0;-sin(u(2,i)) 0 cos(u(2,i))];
    R=R1*R2;
    L=ra-R*rb;
    c=[1;0;0];
    f=R*c;%平面法向量
    M1=[f(1) f(2) f(3);L(2) -L(1) 0;0 -L(3) L(2)];
    N1=[f(1)*(-35);-60*L(2);-20*L(2)];
    M2=[f(1) f(2) f(3);L(5) -L(4) 0;0 L(6) -L(5)];
    N2=[f(1)*(-35);L(4)*17.32-60*L(5);L(5)*10-L(6)*17.32];
    M3=[f(1) f(2) f(3);L(8) -L(7) 0;0 L(9) -L(8)];
    N3=[f(1)*(-35);-L(7)*17.32-60*L(8);L(8)*10+L(9)*17.32];
    a(:,1)=pinv(M1)*N1;
    a(:,2)=pinv(M2)*N2;
    a(:,3)=pinv(M3)*N3;
    o=[-35;0;0];
    r1=norm((a(:,1)-o));
    r2=norm((a(:,2)-o));
    r3=norm((a(:,3)-o));
    if r1<65
        %disp('looped')
        if r2<65       
            if r3<65   
                y(:,j)=u(:,i);   
                j=j+1;
            else
                disp('fail')
            end
        else
            disp('fail')
        end
    else
        disp('fail')
    end
end

matlab为什么我这个程序不循环这个程序的思路是,首先产生一个2行1000列的矩阵,矩阵的每一列代表平面上的一个点的坐标,然后把满足要求的点挑出来,但是为什么我这个程序输入是那些点输出 MATLAB程序,这个程序不知道为什么出现?Error using ==> mpower Matrix must be square. matlab请问我这个程序为什么不循环我要计算一个机械结构的工作空间,首先生成一个2行10000列的矩阵,矩阵的每一列代表一个位姿,然后把符合要求的位姿挑出来生成一个y矩阵,但是结果y矩阵里 matlab带循环的反应器程序报错初学matlab,我前几天看到一个带循环操作的平推流反应器计算最优循环比下反应器最佳体积的例子,想要自己试着做一下,但是总是报错.想请教各位怎样修改这个程 谁能帮我解释一下这个循环语句,数学学得不好.主要是看不懂为什么那么多加号,我少写一个家号程序就出错了,但我不知道加号的作用 给我解释一下这个C语言程序,我看不懂绕不过弯来,那么多for循环 MATLAB中如何定义一个矩阵.用于存放程序运行过程中的数据.不过我不知道这个过程中会产生多少数据. matlab中for循环体中如何修改循环变量我想要在循环体中修改循环变量 比如下面程序:for m = 2:6for n = 1:(m-1)if x(n) == x(m)n = 0; 请问如果这个if条件成立,下次循环会变成从n=1开% 始么?endendend这样修 matlab不满足条件时循环while语句是判断符合某条件后进入循环的对吧,那如果我想编一个程序,如果不能符合某条件的话才进入循环,这个可以实现么?比如我产生一组随机数,并且事先有一个范围 matlab中拟合曲线的问题 谁能帮我查出为何这个程序是错误的啊? matlab算协方差时,为什么要先减去平均值我用matlab算一个矩阵的协方差时,为什么要先减去这个矩阵的平均值啊?我算了一下,如果不减去平均值,cov之后的结果是一样的?这是为啥?程序如下:a=magi 问个matlab程序问题.为什么matlab里面-8的根号3次方不等于-2,这个程序的计算规律是什么? matlab程序的一个方程求这个十字写成matlab的正确程序. 为什么答案说这个极限值不存在呢?我用洛必达求导计算极限值一直都是循环的求导,算不出来. 求一个MATLAB循环语句表示这个矩阵200分A=[-3+3*i,-1+3*i,1+3*i,3+3*i;-3+i,-1+i,1+i,3+i;-3-i,-1-i,1-i,3-i;-3-3*i,-1-3*i,1-3*i,3-3*i]这个矩阵怎么用MATLAB的循环语句表示出来.我的程序是clear;clc;A=zeros(4,4);i=1;j=1;for i=1 求这个二元微分方程组的MATLAB程序 这个公式的MATLAB程序该怎么写 怎么运用matlab绘制这个图形,程序是什么