source: MML/trunk/machine/SOLEIL/StorageRing/insertions/IDStarter/idAuxAddTable2D.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 11 years ago

Initial import--MML version from SOLEIL@2013

File size: 1.4 KB
Line 
1function new_m_with_arg = idAuxAddTable2D(m_orig_with_arg, m_add_with_arg)
2%Adds content of m_add_with_arg table to m_orig_with_arg, preserving format: 1s column and 1st row of
3%each table keep argument values.
4%Requires that mesh point of m_add_with_arg coinside with mesh point of m_orig_with_arg
5
6numOrigArg1 = size(m_orig_with_arg, 1) - 1;
7numOrigArg2 = size(m_orig_with_arg, 2) - 1;
8vOrigArg1 = zeros(numOrigArg1, 1);
9vOrigArg2 = zeros(numOrigArg2, 1);
10for i = 1:numOrigArg1
11        vOrigArg1(i) = m_orig_with_arg(i+1,1);
12end
13for j = 1:numOrigArg2
14        vOrigArg2(j) = m_orig_with_arg(1,j+1);
15end
16
17numAddArg1 = size(m_add_with_arg, 1) - 1;
18numAddArg2 = size(m_add_with_arg, 2) - 1;
19vAddArg1 = zeros(numAddArg1, 1);
20vAddArg2 = zeros(numAddArg2, 1);
21for i = 1:numAddArg1
22        vAddArg1(i) = m_add_with_arg(i+1,1);
23end
24for j = 1:numAddArg2
25        vAddArg2(j) = m_add_with_arg(1,j+1);
26end
27
28new_m_with_arg = m_orig_with_arg;
29
30for j = 1:numAddArg2
31        valAddArg2 = vAddArg2(j);
32    indOrigArg2_p_1 = idAuxFindClosestElemInd(valAddArg2, vOrigArg2) + 1;
33    if(indOrigArg2_p_1 <= 1)
34        continue;
35    end
36    for i = 1:numAddArg1
37        valAddArg1 = vAddArg1(i);
38        indOrigArg1_p_1 = idAuxFindClosestElemInd(valAddArg1, vOrigArg1) + 1;
39        if(indOrigArg1_p_1 <= 1)
40            continue;
41        end
42        new_m_with_arg(indOrigArg1_p_1, indOrigArg2_p_1) = new_m_with_arg(indOrigArg1_p_1, indOrigArg2_p_1) + m_add_with_arg(i+1,j+1);
43    end
44end
Note: See TracBrowser for help on using the repository browser.