Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-03-10
帖子: 19
声望力: 16 ![]() |
![]()
一直烦劳各位 先说声抱歉
谢谢 就是我有一个数据 clear all clc CODE=[1001;1002;1003;2001;2002;2003;3001;3002;3003;4001;4002;4003;5001;5002;5003;6001;6002;6003;7001;7002;7003]; F = [3;5] 求 S矩阵 %%%%%%%%%%%%%%在此小弟先写了一个程序 可以求到Sa Sb Sc三个矩阵 U = 110; w = 2*pi*60; t = 0:0.000005:0.05; num = length(t); sa=zeros(1,num); ea = sqrt(2)*U*sin(w*t); eb = sqrt(2)*U*sin(w*t-2*pi/3); ec = sqrt(2)*U*sin(w*t-4*pi/3); for i = 1:num if asin(ea(i)/sqrt(2)/U) >= pi/6 && asin(ea(i)/sqrt(2)/U) <= 5*pi/6 sa(i) = 1; elseif asin(ea(i)/sqrt(2)/U) <= -pi/6 && asin(ea(i)/sqrt(2)/U) >= -5*pi/6 sa(i) = -1; else sa(i) = 0; end end for i = 1:num if asin(eb(i)/sqrt(2)/U) >= pi/6 && asin(eb(i)/sqrt(2)/U) <= 5*pi/6 sb(i) = 1; elseif asin(eb(i)/sqrt(2)/U) <= -pi/6 && asin(eb(i)/sqrt(2)/U) >= -5*pi/6 sb(i) = -1; else sb(i) = 0; end end for i = 1:num if asin(ec(i)/sqrt(2)/U) >= pi/6 && asin(ec(i)/sqrt(2)/U) <= 5*pi/6 sc(i) = 1; elseif asin(ec(i)/sqrt(2)/U) <= -pi/6 && asin(ec(i)/sqrt(2)/U) >= -5*pi/6 sc(i) = -1; else sc(i) = 0; end end %%%%%%%%%%%%%%END S矩阵的大小就是(CODE最大数*sa的大小) 求法就是 F 所说的数字就是CODE的千位数 也只有这些位置有值其它都是0矩阵 CODE的个位数就是说我要放入的是sa还是sb或是sc 个位数=1放sa 个位数=2放sb 个位数=3放sc 最后S= S=[ [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [sa]矩阵; [sb]矩阵; [sc]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [sa]矩阵; [sb]矩阵; [sc]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵; [0]矩阵]; S与CODE的关系就是 S=[ [0]矩阵; ---------------1001 [0]矩阵; ---------------1002 [0]矩阵; ---------------1003 [0]矩阵; ---------------2001 [0]矩阵; ---------------2002 [0]矩阵; ---------------2003 [sa]矩阵; ---------------3001 [sb]矩阵; ---------------3002 [sc]矩阵; ---------------3003 [0]矩阵; ---------------4001 [0]矩阵; ---------------4002 [0]矩阵; ---------------4003 [sa]矩阵; ---------------5001 [sb]矩阵; ---------------5002 [sc]矩阵; ---------------5003 [0]矩阵; ---------------6001 [0]矩阵; ---------------6002 [0]矩阵; ---------------6003 [0]矩阵; ---------------7001 [0]矩阵; ---------------7002 [0]矩阵]; ---------------7003 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2010-03-10
帖子: 19
声望力: 16 ![]() |
![]()
有一个范例不知怎改请问版上各位英雄
clear all clc CODE=[1001;1002;1003;2001;2002;2003;3001;3002;3003;4001;4002;4003;5001;5002;5003;6001;6002;6003;7001;7002;7003]; LS = [0,0,0;0,0,0;1,2,3;0,0,0;4,5,6;0,0,0;0,0,0.0]; SP = arrayfun(@(x)LS(floor(x/1000),mod(x,1000)),CODE); |
![]() |
![]() |