facelist

您需要登录后才可以留言 登录 | 注册


qsw3925587 2018-5-15 15:48
老师您好,我想编一个子程序,实现矩阵函数输出;function N=Nx(a1,a2,a3,r1,r2,r3)
N=[a1,a2, a3,
   r1,r2,r3];
I=eye(3,3);
R1=[0 (-1)*a3 a2; a3 0 (-1)*a1; (-1)*a2 a1 0];
for seta=(0:0.1:2*pi)
R2=R1.*sin(seta);
R3=R1^2.*(1-cos(seta));
R=I+R1+R3;
end
%%%%%%%%%%%%%%%%   R的矩阵表示
r=[r1; r2; r3];
P1=(I-R)*r
%%%%%%%%%%%% 的表示
c1=r(1,1);
c2=r(2,1);
c3=r(3,1);
A=[0 -c3 c2; c3 0 -c1; -c2 c1 0];
%%%%%%%%%%%
O=[0 0 0;0 0 0; 0 0 0];
N=[R O; R*A R]
结果输出为一定值;求指导!
victoria-py 2018-5-8 10:22
老师您好,我做的是位姿解算的程序,这个程序不报错,但是出来的结果不是我想要的,想问问老师能不能帮忙看一下,谢谢!
clear;
clc;
close;
x_axis = [1 0 0];% 定义各轴
y_axis = [0 1 0];
z_axis = [0 0 1];

a=30;%输入a的值,a=[-30,30]质心y向最大偏移量为7.72mm(当导向轮偏移7.72时,稳定轮偏移30mm,到达机械模型偏移极限)
b=0;%输入b的值,b=[-0.14,0.14]质心Z向最大偏移量为0.14mm(y向的偏移量不影响结果)
% val_1='please input a\n';
% a=input(val_1);%a=[-7.72,7.72]
% b=sqrt(218*218-a*a)-218;
y1=160+a;%质心偏移后y向坐标
z1=1645+b;%质心偏移后z向坐标
T_c=[0 y1 z1];%侧滚中心在体坐标中的位置,x方向没有变化
Tc=[1 0 0 0;0 1 0 a;0 0 1 b;0 0 0 1];
% val_2='please input b\n';
% b=input(val_2);%b=[1644.86,1645.14]


h1=1102;  %定义各铰链点距中体坐标系和静坐标系原点的相对位置
h2=2190;
h3=150;
h4=2350;
h5=1252;
l1=722;
l2=740;
v1=802;
v2=843;
Leg_length_initial=1088;%作动器原始伸长量

%定义静坐标系和体坐标系的坐标原点
Jing_O=[0 0 0];%静坐标系原点O
Ti_O=[18 160 1645];%体坐标系在静坐标系下的坐标值
% C=Ti_O-Jing_O;
% D=[C,1]';
% H=[1 0 0;0 1 0;0 0 1;0 0 0];
% G1=[H,D];
%定义上下铰链点的位置坐标   B下A上
A=[l1 l1 l1-2*l2 l1-2*l2 l1-l2 l1-l2;...
    h2-h1-h4 h1+h2-h4 h1+h2-h4 h2-h1-h4 h2-h5-h4 h5+h2-h4;...
    -v1 -v1 -v1 -v1 -v1-v2 -v1-v2;...
    1 1 1 1 1 1];
B=[l2 l2 -l2 -l2 0 0;...
    -h2 h2 h2 -h2 -h2-h3 h2+h3;...
    v2 v2 v2 v2 0 0;...
    1 1 1 1 1 1];


%体坐标系相对于静坐标系的转换算子
T0=[1 0 0 18;0 1 0 160;0 0 1 1645;0 0 0 1];
L_initial=B-T0*A;
t=0:0.001:2;
theta1=0*pi/180*sin(4*pi*t);%最大角度2.03,当质心右移7.72时,转动角度为0
% r=asin(a/218);
% theta1=r*pi/180*sin(4*pi*t);%经过变换之后的夹角

% theta1=r*sin(4*pi*t);%体坐标系原点绕x轴转过的角度
a1=a*sin(4*pi*t);%体坐标系原点在y方向的位移
a2=b*sin(4*pi*t);%体坐标系原点在z方向的位移

L_1=[];  %初始化
for i=1:length(t)
%     T1=[1 0 0 0;0 1 0 a1(1,i);0 0 1 0;0 0 0 1];
%        T1=[1 0 0 0;0 cos(theta1(1,i)) -sin(theta1(1,i)) 0;0 sin(theta1(1,i)) cos(theta1(1,i)) 0;0 0 0 1];
%                answer1=B-T1*T0*A;
       T1=[1 0 0 0;0 cos(theta1(1,i)) -sin(theta1(1,i)) a1(1,i);0 sin(theta1(1,i)) cos(theta1(1,i)) a2(1,i);0 0 0 1];
        answer1=B-T1*T0*A;
%         answer2=B-T1*T0*A-L_initial;
        L_1=[L_1;answer1(2,:)];              %数据拼接
end
for k=1:1:6
    [a,b]=size(L_1(:,k));      %导入同样大小的矩阵,1088
    z=1088*ones(a,b);
    L_1(:,k)=abs(L_1(:,k))-z;  %作动器位移伸缩量
end

fp=fopen('作动器1位移输出指令.txt','w');%'A.txt'为文件名;'a'为打开方式:在打开的文件末端添加数据,若文件不存在则创建。
fprintf(fp,'%d\r\n',L_1(:,1));%fp为文件句柄,指定要写入数据的文件。注意:%d后有空格。
fp=fopen('作动器2位移输出指令.txt','w');
fprintf(fp,'%d\r\n',L_1(:,2));
fp=fopen('作动器3位移输出指令.txt','w');
fprintf(fp,'%d\r\n',L_1(:,3));
fp=fopen('作动器4位移输出指令.txt','w');
fprintf(fp,'%d\r\n',L_1(:,4));
fp=fopen('作动器5位移输出指令.txt','w');
fprintf(fp,'%d\r\n',L_1(:,5));
fp=fopen('作动器6位移输出指令.txt','w');
fprintf(fp,'%d\r\n',L_1(:,6));

figure('NumberTitle', 'off', 'Name', '侧滚');
subplot(611)
hold on
grid on
plot(t',L_1(:,1),'k') ;
legend('L_1','Location','EastOutside')

subplot(612)
hold on
grid on
plot(t',L_1(:,2),'k') ;
legend('L_2','Location','EastOutside')

subplot(613)
hold on
grid on
plot(t',L_1(:,3),'k') ;
legend('L_3','Location','EastOutside')
ylabel('length(mm)')

subplot(614)
hold on
grid on
plot(t',L_1(:,4),'k') ;
legend('L_4','Location','EastOutside')

subplot(615)
hold on
grid on
plot(t',L_1(:,5),'k') ;
legend('L_5','Location','EastOutside')

subplot(616)
hold on
grid on
plot(t',L_1(:,6),'k') ;
legend('L_6','Location','EastOutside')

xlabel('time(sec)')
set(gcf,'color',[1,1,1]); %背景色为白
旭日星辰1 2018-4-28 11:01
您好,有个matlab多项式辗转相除的小程序想请教一下,谢谢
function divisionf(f,g)

f=[1,1,-3,-4,-1]
g=[1,1,-1,-1]
s1=setstr(poly2sym(f));s2=setstr(poly2sym(g));
format rat
[q,r]=deconv(f,g)
if r==zeros(size(r))
    if length(f)>length(g)
        fprintf ('最大公因式为 %s.\n ', s2 )
      return
    else
        fprintf ('最大公因式为 %s.\n ', s1)
      return
    end
end



while r(1)==0
         r(1)=[ ];
   while r~=zeros(size(r))
        f=g;g=r; [q,r]=deconv(f,g)
        if r== zeros(size(r))               
            if length(g)==1
                  g=1
            end
            s=setstr(poly2sym(g))
         
            fprintf ('多项式 %s 和 %s 的最大公因式为: %s.\n ', s1 , s2 ,s)
        return
       end
    end
end
end
运行后没有得到正确结果
imalice 2018-3-30 17:13
您好,我想请问一下,用matlab求解LMI时,lmi中包含变量的转置该如何描述呀?
adall 2018-1-23 11:43
老师你好,能不能看下我的帖子呢?关于变限积分的,谢谢啦,万分感谢
杨萍 2017-12-29 14:09
老师,我在做在MATLAB中导入捕获到的图片,并找到这个图片的中心点,把图片二值化,用腐蚀算法。如果老师有时间请帮我看看我的问题,谢谢!
https://www.ilovematlab.cn/thread-534153-1-1.html
(出处: MATLAB中文论坛)
wyx491708831 2017-12-5 15:48
您好,lmi新手想问一下矩阵变量乘以它的转置这项怎么描述啊
bethansy 2017-5-3 15:17
版主老师,您可以帮我看看矩阵运算 这个问题吗?谢谢非典型齐次矩阵运算
https://www.ilovematlab.cn/thread-505323-1-1.html
(出处: MATLAB中文论坛)
小战士 2017-4-8 16:46
谢谢老师,您有时间吗,可不可以帮我看一下我的问题?https://www.ilovematlab.cn/thread-499669-1-1.html
夏雨季1130 2017-3-30 20:22
matlabzhanghu: 不好意思,我不了解相关知识
好的,谢谢!
夏雨季1130 2017-3-30 18:59
老师,您好!有个Matlab数值实验问题能否帮忙看下?非常感谢!https://www.ilovematlab.cn/thread-498521-1-1.html
306511245 2017-2-15 21:56
matlabzhanghu: 仿真还是要自己做的,做到哪一步进行不下去了可以在论坛提问
我主要是不会matlab编程,函数都写出来了,就差这几个函数的仿真,主要是我现在没有时间学matlab编程这块,所以就想看看你能不能帮帮忙,我可以支付你辛苦费的
306511245 2017-2-15 20:26
能帮我做几个自定义函数的matlab仿真吗?
jimmy1 2017-1-16 12:55
谢谢大大
土壤源 2017-1-5 19:38
版主急求帮助!!https://www.ilovematlab.cn/thread-490012-1-1.html
kaiyaya 2016-12-23 14:39
我的程序现在其实进行到这儿了~
close all;clear all;clc

img = imread('D:\opicture\11.jpg');
grey_img = double(rgb2gray(img));
nC=20;
[labels] = mex_ers(grey_img,nC);%mex_ers是一个对图像标记标签的函数,把图像的像素分了20种标签,分别标记了

timg=img;%创建了一个新的变量,第一层放灰度值,第二层放标签值,第三层暂时放灰度值
timg(:,:,1)=grey_img;
timg(:,:,2)=labels;
timg(:,:,3)=grey_img;

siz = zeros(nC,1);

for i=0:(nC-1)
    siz(i) = sum( labels(:)==i );
    [r,c]=find(labels==i);
    Results=arrayfun(@(r,c)timg(r,c,1),A(:,1),A(:,2));
    Len = min(siz);                % 也是新矩阵的行数 改成最小的个数
   

end
最重要的就是没法建立一个新的矩阵,现在我打算把最小的个数作为新的矩阵行数,请问我接下来应该怎么编呢~
希望您能在百忙之中抽一点时间回答~谢谢~
土壤源 2016-12-14 21:06
老师麻烦您百忙之中帮忙解决一个小问题,谢谢您了、、https://www.ilovematlab.cn/thread-488155-1-1.html
li7491000 2016-12-13 21:44
版主你好,我想用GUI做成单独运行的软件,在生成EXE后,提示错误是undefined function 'syms'for input arguments of type 'char'.查了很多都说matlab编译成EXE不支持符号函数。但是我的程序里面是用syms定义变量求导要用,遇到这种该怎么修改呢?老师找了好久都不知道该怎么做?很苦恼,能给支个招吗QQ343275155
青米轻 2016-11-24 19:38
想请教matlab中的相关问题,我是学生,正在入门。
hyowinner 2016-4-2 15:48
Hyowinner's MATLAB/Simulink Video Course for you -- http://www.chuanke.com/s3570260.html
关闭

站长推荐上一条 /5 下一条

返回顶部