武神裝攻 发表于 2010-7-7 15:54:27

请帮想如何加長矩阵 附上自己的 谢谢

本帖最后由 武神裝攻 于 2010-7-9 07:41 编辑

自己:
clear all
clc
DATA2 = [   
    5,0.200000000000000;
    7,0.143000000000000;
    11,0.0910000000000000;
    13,0.0770000000000000;
    17,0.0590000000000000;
    19,0.0530000000000000;
    23,0.0430000000000000;
    25,0.0400000000000000;
    29,0.0340000000000000;
    31,0.0320000000000000;
    35,0.0280000000000000;
    37,0.0270000000000000;
    41,0.0240000000000000;
    43,0.0230000000000000;
    47,0.0210000000000000;
    49,0.0200000000000000;];

for we = 1:length(DATA2(:,1))
A=[0,1,0,0.000100000000000000*DATA2(we,1);
       1,2,0.000500000000000000,0.00344000000000000*DATA2(we,1);
       2,3,0.00312000000000000,0.0675300000000000*DATA2(we,1);
       3,4,0.00431000000000000,0.0120400000000000*DATA2(we,1);
       4,5,0.00601000000000000,0.0167700000000000*DATA2(we,1);
       5,6,0.00316000000000000,0.00882000000000000*DATA2(we,1);
       6,7,0.00896000000000000,0.0250200000000000*DATA2(we,1);
       7,8,0.00295000000000000,0.00824000000000000*DATA2(we,1);
       8,9,0.0172000000000000,0.0212000000000000*DATA2(we,1);
       9,10,0.0407000000000000,0.0305300000000000*DATA2(we,1);
       4,11,0.0170600000000000,0.0220900000000000*DATA2(we,1);
       3,12,0.0291000000000000,0.0376800000000000*DATA2(we,1);
       12,13,0.0222200000000000,0.0287700000000000*DATA2(we,1);
       13,14,0.0480300000000000,0.0621800000000000*DATA2(we,1);
       13,15,0.0398500000000000,0.0516000000000000*DATA2(we,1);
       15,16,0.0291000000000000,0.0376800000000000*DATA2(we,1);
       15,17,0.0372700000000000,0.0459300000000000*DATA2(we,1);
       17,18,0.0220800000000000,0.0272000000000000*DATA2(we,1);];
end
到这为止但是小弟想做的是要如何利用资料增加A后续

读取附件的EXCEL程式:
Load = xlsread('LOAD.xlsx','(A3:C3):(A100:C100)');
CLoad = xlsread('LOAD.xlsx','(E3:G3):(E100:G100)');

我希望就是创一个新的矩阵B是接着A后面写
B=[A;
   LA;
   CLA];
A 四排 分別意思是      
             起始號碼            終止號碼                W                     Y = X*DATA2(we,1)
例如:            0                        1                     0                     0.0001*DATA2(we,1)
                  1                        2                   0.0005                0.00344*DATA2(we,1)
                                                         一直到
                   17                        18                  0.02208            0.0272*DATA2(we,1)
而B就是接着A后面写但是数据是靠Load跟CLoad创建    首先先接LA 由Load矩阵创建
    起始号码 = Load矩阵第一排数
    终止号码 = 0 (全部都是0)
    W = (R1*X1^2*DATA2(we,1)^2)/(R1^2+X1^2*DATA2(we,1)^2)    ;   
    對了R1= 1^2/(Load矩阵第二排数*1000/100000)   例如要是起始數已經算到13那终止号码=0   那R1= 1^2/(300*1000/100000)      
             X1= 1^2/(Load矩阵第三排数*1000/100000)    例如要是起始數已經算到13那终止号码=0   那X1= 1^2/(190*1000/100000)
   Y =(R1^2*X1*DATA2(we,1))/(R1^2+X1^2*DATA2(we,1)^2)   

LA接完後換接CLA   由CLoad矩阵创建
    起始号码 = CLoad矩阵第一排数
    终止号码 = 0 (全部都是0)
    W = 0 (全部都是0)
   Y = X1*DATA2(we,1)
    對了X1= 1^2/(CLoad矩阵第三排数*1000/100000)    例如要是起始數已經算到13那终止号码=0   那X1= 1^2/(-1200*1000/100000)

C最後是
0,1,0,0.000100000000000000*DATA2(we,1);
       1,2,0.000500000000000000,0.00344000000000000*DATA2(we,1);
       2,3,0.00312000000000000,0.0675300000000000*DATA2(we,1);
       3,4,0.00431000000000000,0.0120400000000000*DATA2(we,1);
       4,5,0.00601000000000000,0.0167700000000000*DATA2(we,1);
       5,6,0.00316000000000000,0.00882000000000000*DATA2(we,1);
       6,7,0.00896000000000000,0.0250200000000000*DATA2(we,1);
       7,8,0.00295000000000000,0.00824000000000000*DATA2(we,1);
       8,9,0.0172000000000000,0.0212000000000000*DATA2(we,1);
       9,10,0.0407000000000000,0.0305300000000000*DATA2(we,1);
       4,11,0.0170600000000000,0.0220900000000000*DATA2(we,1);
       3,12,0.0291000000000000,0.0376800000000000*DATA2(we,1);
       12,13,0.0222200000000000,0.0287700000000000*DATA2(we,1);
       13,14,0.0480300000000000,0.0621800000000000*DATA2(we,1);
       13,15,0.0398500000000000,0.0516000000000000*DATA2(we,1);
       15,16,0.0291000000000000,0.0376800000000000*DATA2(we,1);
       15,17,0.0372700000000000,0.0459300000000000*DATA2(we,1);
       17,18,0.0220800000000000,0.0272000000000000*DATA2(we,1);
      0,0,?,?;
      1,0,?,?;
      2,0,?,?;
          直到
      18,0,?,?;
      0,0,?,?;
      1,0,?,?;
      2,0,?,?;
          直到
      18,0,?,?;]
总共54排4行大的矩阵

这是目前自己想的简单接续范例
A=[0   1    8   10;
   1   2   11    8
   2   3    7    9
   2   4    5    7
   4   5    7    7];
B=[ 38 1   
    45 1
    52 1 ] ;
ca = size(A);
cb = size(B);
temp = zeros(cb(1), ca(2));% 生成一个行与B相同,列与A相同的临时0矩阵
temp(:, 2:end) = B;   %第一列为0,其余为B其实一 二列哪个为0没差 但是三四列不能错
C = ;   % 连接矩阵

武神裝攻 发表于 2010-7-8 12:29:27

本帖最后由 武神裝攻 于 2010-7-8 18:31 编辑

例如
A=[0   1    8   10;
   1   2   11    8
   2   3    7    9
   2   4    5    7
   4   5    7    7];

讀表得到Load
Load
=[ 3 8 1   
    45 1
    52 1 ] ;
那我的C(上面寫B寫C都是指答案抱歉參數沒看好)
C=B就是
=A=[0   1    8   10;
      1   2   11    8
      2   3    7    9
      2   4    5    7
      4   5    7    7
         3 0    W   Y
         4 0    W   Y
         50    W   Y ]

因為我有兩種矩陣
所以W ,Y 的算法分兩種

求W Y的公式如上所示
比較複雜的是Load矩陣
以此例看3 0    W   Y
那R1=1^2/(8*1000/10000)
    X1=1^2/(1*1000/10000)

lin2009 发表于 2010-7-13 15:02:16

1#中DATA2 有16 行,A有 18行, 如何从DATA2得到A?
for we = 1:length(DATA2(:,1))
A=[0,1,0,0.000100000000000000*DATA2(we,1);
       1,2,0.000500000000000000,0.00344000000000000*DATA2(we,1);
       2,3,0.00312000000000000,0.0675300000000000*DATA2(we,1);
      ....
       17,18,0.0220800000000000,0.0272000000000000*DATA2(we,1);];
end
看不懂你要表达的意思。
页: [1]
查看完整版本: 请帮想如何加長矩阵 附上自己的 谢谢