<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lipidbank.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AClassMatrix</id>
	<title>Module:ClassMatrix - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lipidbank.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AClassMatrix"/>
	<link rel="alternate" type="text/html" href="https://lipidbank.jp/mediawiki/index.php?title=Module:ClassMatrix&amp;action=history"/>
	<updated>2026-04-29T13:30:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://lipidbank.jp/mediawiki/index.php?title=Module:ClassMatrix&amp;diff=117033&amp;oldid=prev</id>
		<title>Editor: Created page with &quot;local getArgs = require(&#039;Module:Arguments&#039;).getArgs; local defArgs = require(&#039;Module:Arguments&#039;).defaultArgs; local classMatrix = {};  function classMatrix.XAxis( frame )   local args = defArgs(getArgs(frame), 3, &quot;&quot;, &quot;&quot;, &quot;&quot;);   local arg1 = args[1];   local arg2 = args[2];   local arg3 = args[3];    local text = &quot;&quot;;   local H = {};   local T = {};   for id in arg1:gmatch(&quot;%S+&quot;) do     str = string.sub(id,arg2,arg3);     if (H[str] == nil)       then H[str] = 1; table.ins...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lipidbank.jp/mediawiki/index.php?title=Module:ClassMatrix&amp;diff=117033&amp;oldid=prev"/>
		<updated>2023-01-30T02:44:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs; local defArgs = require(&amp;#039;Module:Arguments&amp;#039;).defaultArgs; local classMatrix = {};  function classMatrix.XAxis( frame )   local args = defArgs(getArgs(frame), 3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);   local arg1 = args[1];   local arg2 = args[2];   local arg3 = args[3];    local text = &amp;quot;&amp;quot;;   local H = {};   local T = {};   for id in arg1:gmatch(&amp;quot;%S+&amp;quot;) do     str = string.sub(id,arg2,arg3);     if (H[str] == nil)       then H[str] = 1; table.ins...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs;&lt;br /&gt;
local defArgs = require(&amp;#039;Module:Arguments&amp;#039;).defaultArgs;&lt;br /&gt;
local classMatrix = {};&lt;br /&gt;
&lt;br /&gt;
function classMatrix.XAxis( frame )&lt;br /&gt;
  local args = defArgs(getArgs(frame), 3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
  local arg1 = args[1];&lt;br /&gt;
  local arg2 = args[2];&lt;br /&gt;
  local arg3 = args[3];&lt;br /&gt;
&lt;br /&gt;
  local text = &amp;quot;&amp;quot;;&lt;br /&gt;
  local H = {};&lt;br /&gt;
  local T = {};&lt;br /&gt;
  for id in arg1:gmatch(&amp;quot;%S+&amp;quot;) do&lt;br /&gt;
    str = string.sub(id,arg2,arg3);&lt;br /&gt;
    if (H[str] == nil)&lt;br /&gt;
      then H[str] = 1; table.insert(T, str);&lt;br /&gt;
      else H[str] = H[str] + 1;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  table.sort(T);&lt;br /&gt;
  for i=1,table.getn(T) do&lt;br /&gt;
    local k = T[i];&lt;br /&gt;
    text = text .. k .. &amp;quot; &amp;quot; .. H[k] .. &amp;quot; &amp;quot;;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function classMatrix.YAxis( frame )&lt;br /&gt;
  local args = defArgs(getArgs(frame), 3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
  local arg1 = args[1];&lt;br /&gt;
  local arg2 = args[2];&lt;br /&gt;
  local arg3 = args[3];&lt;br /&gt;
&lt;br /&gt;
  local text = &amp;quot;&amp;quot;;&lt;br /&gt;
  local H = {};&lt;br /&gt;
  local T = {};&lt;br /&gt;
  for id in arg1:gmatch(&amp;quot;%S+&amp;quot;) do&lt;br /&gt;
    str = string.sub(id,arg2,arg3);&lt;br /&gt;
    if (H[str] == nil)&lt;br /&gt;
      then H[str] = 1; table.insert(T, str);&lt;br /&gt;
      else H[str] = H[str] + 1;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  table.sort(T);&lt;br /&gt;
  for i=1,table.getn(T) do&lt;br /&gt;
    local k = T[i];&lt;br /&gt;
    text = text .. k .. &amp;quot; &amp;quot; .. H[k] .. &amp;quot;\n&amp;quot;;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function classMatrix.Matr( frame )&lt;br /&gt;
  local args = defArgs(getArgs(frame), 6, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
  local arg  = args[1];&lt;br /&gt;
  local arg1 = args[2];&lt;br /&gt;
  local arg2 = tonumber(args[3]);&lt;br /&gt;
  local arg3 = tonumber(args[4]);&lt;br /&gt;
  local arg4 = tonumber(args[5]);&lt;br /&gt;
  local arg5 = tonumber(args[6]);&lt;br /&gt;
&lt;br /&gt;
  local text = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  local input = arg:match(&amp;quot;.+&amp;quot;);&lt;br /&gt;
  local xaxis, yaxis, all = string.match(input, &amp;quot;([^&amp;amp;]+)&amp;amp;&amp;amp;([^&amp;amp;]+)&amp;amp;&amp;amp;(.+)&amp;quot;);&lt;br /&gt;
  local M = {};&lt;br /&gt;
  for id in string.gmatch(all,&amp;quot;(%S+)&amp;quot;) do&lt;br /&gt;
    x = string.sub(id, arg2, arg3);&lt;br /&gt;
    y = string.sub(id, arg4, arg5);&lt;br /&gt;
    if (M[x] == nil) then M[x] = {}; end&lt;br /&gt;
    if (M[x][y] == nil)&lt;br /&gt;
      then M[x][y] = 1;&lt;br /&gt;
      else M[x][y] = M[x][y] + 1;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  --- arg2arg3がarg4arg5より後ろの場合も考慮 ---&lt;br /&gt;
  if (arg3 &amp;lt;= arg4)&lt;br /&gt;
  then&lt;br /&gt;
    strFst = string.sub(arg1, 1, arg2-1);&lt;br /&gt;
    strSnd = string.sub(arg1, arg3+1, arg4-1);&lt;br /&gt;
    strTrd = string.sub(arg1, arg5+1, string.len(arg1));&lt;br /&gt;
  else&lt;br /&gt;
    strFst = string.sub(arg1, 1, arg4-1);&lt;br /&gt;
    strSnd = string.sub(arg1, arg5+1, arg2-1);&lt;br /&gt;
    strTrd = string.sub(arg1, arg3+1, string.len(arg1));&lt;br /&gt;
  end&lt;br /&gt;
  for x,v in string.gmatch(xaxis, &amp;quot;(%S+) (%S+)&amp;quot;) do&lt;br /&gt;
    str = x .. &amp;quot; &amp;lt;small&amp;gt;(&amp;quot; .. v .. &amp;quot;)&amp;lt;/small&amp;gt;&amp;amp;&amp;amp;&amp;quot;;&lt;br /&gt;
    for y,v in string.gmatch(yaxis, &amp;quot;(%S+) (%S+)&amp;quot;) do&lt;br /&gt;
      if (M[x][y] == nil)&lt;br /&gt;
        then str = str .. &amp;quot; 0 dummy&amp;quot;;&lt;br /&gt;
        else if (arg3 &amp;lt;= arg4)&lt;br /&gt;
          then str = str .. &amp;quot; &amp;quot; .. M[x][y] .. &amp;quot; &amp;quot; .. strFst .. x .. strSnd .. y .. strTrd;&lt;br /&gt;
          else str = str .. &amp;quot; &amp;quot; .. M[x][y] .. &amp;quot; &amp;quot; .. strFst .. y .. strSnd .. x .. strTrd;&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    text = text .. str .. &amp;quot;\n&amp;quot;;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return classMatrix;&lt;/div&gt;</summary>
		<author><name>Editor</name></author>
	</entry>
</feed>