24小时热门版块排行榜    

查看: 1387  |  回复: 6

topliu85

铜虫 (小有名气)

[求助] 向量与矩阵的乘积已有1人参与

a=[x,y,z];
b=[cos(500)*t,-sin(500)*t,0;sin(300)*t,cos(300)*t,0;0,0,1];
c=[3cos(1000)*t;3sin(1000)*t;0];
d=[9cos(500)*t;9sin(500)*t;20*t];
a=b*c+d
目的是想画出a中x,y,z中的三维图?求助
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

2楼2016-01-27 00:05:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

topliu85

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by ju5200 at 2016-01-27 00:05:34
不难噢,直接plot

这里的t不是一个数值,而是t=0:0.1:3
3楼2016-01-27 09:43:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang_chuan

银虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
topliu85: 金币+10, ★★★★★最佳答案, 很好很好。如果我还想把同一时刻对应的x,y做一个筛选,比方说x^2+y^2<=16,怎么添加到程序中? 2016-01-28 10:01:35
t=0:0.1:3;
b=cell(31,1);
c=cell(31,1);
d=cell(31,1);
a=cell(31,1);
i=1;
for t=0:0.1:3
    b{i,1}=[cos(500)*t,-sin(500)*t,0;sin(300)*t,cos(300)*t,0;0,0,1];
    c{i,1}=[3*cos(1000)*t;3*sin(1000)*t;0];
    d{i,1}=[9*cos(500)*t;9*sin(500)*t;20*t];
    a{i,1}=b{i,1}*c{i,1}+d{i,1};
    i=i+1;
end
x=zeros(31,1);
y=zeros(31,1);
z=zeros(31,1);
for i=1:31
    x(i,1)=a{i,1}(1,1);
    y(i,1)=a{i,1}(2,1);
    z(i,1)=a{i,1}(3,1);
end
plot3(x,y,z);
4楼2016-01-27 22:26:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang_chuan

银虫 (正式写手)

b=cell(31,1);
c=cell(31,1);
d=cell(31,1);
a=cell(31,1);
i=1;
for t=0:0.1:3
    b{i,1}=[cos(500)*t,-sin(500)*t,0;sin(300)*t,cos(300)*t,0;0,0,1];
    c{i,1}=[3*cos(1000)*t;3*sin(1000)*t;0];
    d{i,1}=[9*cos(500)*t;9*sin(500)*t;20*t];
    a{i,1}=b{i,1}*c{i,1}+d{i,1};
    i=i+1;
end
x=zeros(31,1);
y=zeros(31,1);
z=zeros(31,1);
for i=1:31
    x(i,1)=a{i,1}(1,1);
    y(i,1)=a{i,1}(2,1);
    z(i,1)=a{i,1}(3,1);
end
x_new=pi;
y_new=pi;
z_new=pi;
for j=1:31
    if x(j,1)^2+y(j,1)^2<=16
        if x_new(1,1)==pi && y_new(1,1)==pi && z_new(1,1)==pi
            x_new=x(j,1);
            y_new=y(j,1);
            z_new=z(j,1);
        else
            x_new=[x_new;x(j,1)];
            y_new=[y_new;y(j,1)];
            z_new=[z_new;z(j,1)];
        end
    end
end
plot3(x_new,y_new,z_new);
5楼2016-01-28 10:55:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

topliu85

铜虫 (小有名气)

引用回帖:
5楼: Originally posted by wang_chuan at 2016-01-28 10:55:19
b=cell(31,1);
c=cell(31,1);
d=cell(31,1);
a=cell(31,1);
i=1;
for t=0:0.1:3
    b{i,1}=;
    c{i,1}=;
    d{i,1}=;
    a{i,1}=b{i,1}*c{i,1}+d{i,1};
    i=i+1;
end
x=zeros(31,1);
y=zeros(3 ...

为什么把x_new,y_new,z_new初值设定为pi?
6楼2016-01-28 21:50:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang_chuan

银虫 (正式写手)

引用回帖:
6楼: Originally posted by topliu85 at 2016-01-28 21:50:19
为什么把x_new,y_new,z_new初值设定为pi?...

随便设个初始值,一般来讲是置0的,但你给的数组第一组恰好都是0,为了区分就设置为pi,没什么特别的意思。
7楼2016-01-29 08:06:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 topliu85 的主题更新
信息提示
请填处理意见