![]() |
想请问板上英雄帮实现一个取值程序
实为抱歉一直烦扰各位
恳请拜托 谢谢 -----------------------------------------------------------------------范例数据程序 clear all; clc table1 = [ 1 0 1 1 2 1 2 2 3 2 3 3 4 2 4 1 ]; % col1 支路号 col2 起始点 col3 终止点 col4 支路类型 col1 = table1(:,1); col2 = table1(:,2); col3 = table1(:,3); col4 = table1(:,4); table2 = [1001 1002 1003 ... 2001 2002 2003 ... 3001 3002 3003 ... 4001 4003]'; % col5 取编码的千位也就是支路号(用来知道V与 I 哪几个是属于哪个支路) col6 取编码的个位(可知道三相支路三点是否全通或是缺少哪点) col5 = floor(table2 /1000); col6 = mod(table2 ,10); Vtr = [10;12;7;9;11;4;14;13;21;3;8]; -----------------------------------------------------------------------Vtr跟table2 关系 Vtr=[10 ----->1001 12 ----->1002 7 ----->1003 9 ----->2001 11 ----->2002 4 ----->2003 14 ----->3001 13 ----->3002 21 ----->3003 3 ----->4001 8] ----->4003 -----------------------------------------------------------------------問 我想实现求 VS 跟VF 以下是求VS跟VF的步骤 先说col2是用来知道VS col3是用来知道VF (1)一開始col2 = 0 col3 = 1 看table2千位数是0的 因为没有所以VS = [0; 0; 0]; 看table2千位数是1的对应的Vtr 可以找到有10,12,7 个位数就是VF的排列顺序(有缺号的补0)所以VF=[10;12;7]; (2)col2 = 1 col3 = 2 看table2千位数是1的对应的Vtr 可以找到有10,12,7 个位数就是VS的排列顺序(有缺号的补0)所以VS=[10;12;7]; 看table2千位数是2的对应的Vtr 可以找到有9,11,4 个位数就是VF的排列顺序(有缺号的补0)所以VF=[9;11;4]; (3)col2 = 2 col3 = 3 看table2千位数是2的对应的Vtr 可以找到有9,11,4 个位数就是VS的排列顺序(有缺号的补0)所以VS=[9;11;4]; 看table2千位数是2的对应的Vtr 可以找到有14,13,21 个位数就是VF的排列顺序(有缺号的补0)所以VF=[14;13;21]; (3)col2 = 2 col3 = 4 看table2千位数是2的对应的Vtr 可以找到有9,11,4 个位数就是VS的排列顺序(有缺号的补0)所以VS=[9;11;4]; 看table2千位数是2的对应的Vtr 可以找到有3,8 个位数就是VF的排列顺序(有缺号的补0)所以VF=[3;0;8]; 验证方法多设一个VSS的矩阵每次求得的VS放入VSS VFF VF VFF |
回复: 想请问板上英雄帮实现一个取值程序
不好意思重复(3)
是 (4)col2 = 2 col3 = 4 看table2千位数是2的对应的Vtr 可以找到有9,11,4 个位数就是VS的排列顺序(有缺号的补0)所以VS=[9;11;4]; 看table2千位数是2的对应的Vtr 可以找到有3,8 个位数就是VF的排列顺序(有缺号的补0)所以VF=[3;0;8]; 这是之前所写让编码找到Vtr A(:,1) =编码 A(:,2) =Vtr 目前继续想中 clear all; clc; A(:,1) = [1001;1002;1003;2001;6001;3002;4001;5003;9002]; A(:,2) = [-1;2;5;-8;10;3;4;5;8]; m_tmp = floor(A(:,1)/1000); m_num = unique(m_tmp); for k = 1:length(m_tmp) m(k) = find(m_num == m_tmp(k)); end % m = floor(A(:,1)./1000); n = A(:,1)-10*floor(A(:,1)./10); ind = sub2ind([max(m),max(n)],m,n'); tmp = zeros([max(m),max(n)]); tmp(ind) = A(:,2); B = [unique(floor(A(:,1)/1000)),tmp] |
回复: 想请问板上英雄帮实现一个取值程序
请问是没人会还是看不懂
我都可以说明或是一起讨论 1247396969 |
所有时间均为北京时间。现在的时间是 13:37。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.