Template:ClassMatrix: Difference between revisions

No edit summary
mNo edit summary
 
(39 intermediate revisions by the same user not shown)
Line 4: Line 4:
   local H = {};
   local H = {};
   local T = {};
   local T = {};
   for id in stdin:gmatch("%w+") do
   for id in stdin:gmatch("%S+") do
     str = string.sub(id,{{{2}}},{{{3}}});
     str = string.sub(id,{{{2}}},{{{3}}});
     if (H[str] == nil)
     if (H[str] == nil)
Line 23: Line 23:
   local H = {};
   local H = {};
   local T = {};
   local T = {};
   for id in stdin:gmatch("%w+") do
   for id in stdin:gmatch("%S+") do
     str = string.sub(id,{{{4}}},{{{5}}});
     str = string.sub(id,{{{4}}},{{{5}}});
     if (H[str] == nil)
     if (H[str] == nil)
Line 39: Line 39:
}}
}}


{{#def:MATR|
{{#lua:
{{#lua:
   local input = stdin:match(".+");
   local input = stdin:match(".+");
   local xaxis, yaxis, all = string.match(input, "([^&]+)&&([^&]+)&&(.+)");
   local xaxis, yaxis, all = string.match(input, "([^&]+)&&([^&]+)&&(.+)");
  local xval = {};
  local yval = {};
   local M = {};
   local M = {};
  local i=1;
   for id in string.gmatch(all,"(%S+)") do
 
  local xmax = i;
  i = 1;
   for k,v in string.gmatch(yaxis, "(%S+) (%S+)") do
    yval[k] = i; i = i + 1; print(k .. "; ");
  end
  local ymax = i;
  for id in string.gmatch(all,"%S+") do
     x = string.sub(id, {{{2}}}, {{{3}}});
     x = string.sub(id, {{{2}}}, {{{3}}});
     y = string.sub(id, {{{4}}}, {{{5}}});
     y = string.sub(id, {{{4}}}, {{{5}}});
     print("accessing " .. xval[x] .. " : " .. yval[y]);
     if (M[x] == nil) then M[x] = {}; end
     if (M[x][y] == nil)
     if (M[x][y] == nil)
       then M[x][y] = 1;
       then M[x][y] = 1;
Line 62: Line 53:
     end
     end
   end
   end
  strFst = string.sub("{{{1}}}", 1, {{{2}}}-1);
  strSnd = string.sub("{{{1}}}", {{{3}}}+1, {{{4}}}-1);
  strTrd = string.sub("{{{1}}}", {{{5}}}+1, string.len("{{{1}}}"));
   for x,v in string.gmatch(xaxis, "(%S+) (%S+)") do
   for x,v in string.gmatch(xaxis, "(%S+) (%S+)") do
    str = x .. " <small>(" .. v .. ")</small>&&";
     for y,v in string.gmatch(yaxis, "(%S+) (%S+)") do
     for y,v in string.gmatch(yaxis, "(%S+) (%S+)") do
       print(M[x][y] .. " ");
       if (M[x][y] == nil)
        then str = str .. " 0 dummy";
        else str = str .. " " .. M[x][y] .. " " .. strFst .. x .. strSnd .. y .. strTrd;
      end
     end
     end
     print("\n");
     print(str);
   end
   end
 
|{{#var:X-AXIS}}&&{{#var:Y-AXIS}}&&{{#var:ALL}}
|{{#var:X-AXIS}}&&{{#var:Y-AXIS}}&&{{#var:ALL}}
}}
}}
}}


{{#var:MATR}}


<!---
{| class=wikitable style="margin:0 auto"
{{#var:X-AXIS}}
|+ style="font-weight:bold" | Rows: {{{6|}}}, Columns: {{{7|}}} (counts)
<BR>
{{#var:Y-AXIS}}
--->
 
{| class=wikitable
|-
|-
!
!
{{#repeat:ClassMatrix/CreateHeader|1|{{#var:Y-AXIS}}}}
{{#repeat:ClassMatrix/CreateHeader|1|{{#var:Y-AXIS}}}}
|-
{{#repeat:ClassMatrix/CreateRows|1|{{#var:MATR}}}}
 
 
|}
|}

Latest revision as of 14:18, 21 December 2008





{{#lua:

 local input = stdin:match(".+");
 local xaxis, yaxis, all = string.match(input, "([^&]+)&&([^&]+)&&(.+)");
 local M = {};
 for id in string.gmatch(all,"(%S+)") do
   x = string.sub(id, {{{2}}}, {{{3}}});
   y = string.sub(id, {{{4}}}, {{{5}}});
   if (M[x] == nil) then M[x] = {}; end
   if (M[x][y] == nil)
     then M[x][y] = 1;
     else M[x][y] = M[x][y] + 1;
   end
 end
 strFst = string.sub("{{{1}}}", 1, {{{2}}}-1);
 strSnd = string.sub("{{{1}}}", {{{3}}}+1, {{{4}}}-1);
 strTrd = string.sub("{{{1}}}", {{{5}}}+1, string.len("{{{1}}}"));
 for x,v in string.gmatch(xaxis, "(%S+) (%S+)") do
   str = x .. " (" .. v .. ")&&";
   for y,v in string.gmatch(yaxis, "(%S+) (%S+)") do
     if (M[x][y] == nil)
       then str = str .. " 0 dummy";
       else str = str .. " " .. M[x][y] .. " " .. strFst .. x .. strSnd .. y .. strTrd;
     end
   end
   print(str);
 end

|{{#lua:

 local H = {};
 local T = {};
 for id in stdin:gmatch("%S+") do
   str = string.sub(id,{{{2}}},{{{3}}});
   if (H[str] == nil)
     then H[str] = 1; table.insert(T, str);
     else H[str] = H[str] + 1;
   end
 end
 table.sort(T);
 for i=1,table.getn(T) do
   local k = T[i];
   print(k .. " " .. H[k]);
 end

| }}&&{{#lua:

 local H = {};
 local T = {};
 for id in stdin:gmatch("%S+") do
   str = string.sub(id,{{{4}}},{{{5}}});
   if (H[str] == nil)
     then H[str] = 1; table.insert(T, str);
     else H[str] = H[str] + 1;
   end
 end
 table.sort(T);
 for i=1,table.getn(T) do
   local k = T[i];
   print(k .. " " .. H[k]);
 end

| }}&& }}

Rows: , Columns: (counts)
{{#lua:}}! ({{{1}}} () {{{1}}} () for (id in stdin:gmatch("%S+") do) {{{1}}} () {{{1}}} () {{{1}}} () {{{1}}} () end () end () table.sort(T); () {{{1}}} () {{{1}}} () print(k (.. " " .. H[k]);) end () () ())
{{#lua:}}|- {{{1}}}
{{{1}}}
{{{1}}}
for id in string.gmatch(all,"(%S+)") do
{{{1}}}
{{{1}}}
{{{1}}}
{{{1}}}
{{{1}}}
{{{1}}}
end
end
{{{1}}}
{{{1}}}
{{{1}}}
for x,v in string.gmatch(xaxis, "(%S+) (%S+)") do
{{{1}}}
for y,v in string.gmatch(yaxis, "(%S+) (%S+)") do
{{{1}}}
{{{1}}}
{{{1}}}
end
end
print(str);
end
'
''''