⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 som_table_modify.m

📁 很全的som工具箱 四个demo可为初学者提够帮助
💻 M
字号:
function sT = som_table_modify(sT,action,arg1,arg2,arg3)%SOM_TABLE_MODIFY Modify table: add or remove columns or rows.%  % sTable = som_table_modify(sTable,action,arg1,[arg2],[arg3])% %  Input and output arguments ([]'s are optional): %   sTable      (struct) table struct%   action      (string) action id (see below).%   arg1        (varies) Depending on action, 1 to 3 arguments%   [arg2]      (varies) are needed. See below.%   [arg3]      (varies) %%   sTable      (struct) the modified table struct%%  Actions and their arguments:%   'addcol'    Add one or several new columns.%               arg1 (cell array) new values%                    (char)       new values (a single column can be given)%                    (matrix)     new values%               arg2 (cell array) new headers%               arg3 (scalar)     at which position the new columns %                                 should be inserted (at the end by default)%   'addrow'    Add one or several new rows.%               arg1 (cell array) new values%                    (char)       new values (a single row can be given)%                    (matrix)     new values%               arg2 (scalar)     at which position the new rows %                                 should be inserted (at the end by default)%   'removecol' Remove one or several columns.           %               arg1 (vector)     indeces of columns to be removed%   'removerow' Remove one or several rows.           %               arg1 (vector)     indeces of rows to be removed% % See also  SOM_TABLE_STRUCT, SOM_TABLE_PRINT.% Contributed to SOM Toolbox 2.0, January 4th, 2002 by Juha Vesanto% Copyright (c) by Juha Vesanto% http://www.cis.hut.fi/projects/somtoolbox/% Version 2.0beta juuso 040102%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[nrT,ncT] = size(sT.values); switch action,  case 'addcol',   values = arg1;   if ischar(values), values = cellstr(values); end  if isnumeric(values), values = num2cell(values); end  spans  = ones([size(values) 2]);  [nr,nc] = size(values);   if nargin<4, header = cell(1,nc); header(:) = {''}; else header = arg2; end  if ischar(header), header = cellstr(header); end  if nargin<5, where = ncT+1; else  where  = arg3; end  if nrT ~= nr,     error('Mismatch between sizes of given table and additional columns')  else    sT.headers = [sT.headers(:,1:where-1), header, sT.headers(:,where:end)];     sT.values  = [sT.values(:,1:where-1), values, sT.values(:,where:end)];     sT.span    = [sT.span(:,1:where-1,:), spans, sT.span(:,where:end,:)];   end case 'addrow',   values  = arg1;   if ischar(values), values = cellstr(values); end  if isnumeric(values), values = num2cell(values); end  [nr,nc] = size(values);   spans   = ones([size(values) 2]);  if nargin<4, where = nrT+1; else where  = arg2; end  if ncT ~= nc,     error('Mismatch between sizes of given table and additional rows')  else    sT.values = [sT.values(1:where-1,:); values; sT.values(where:end,:)];     sT.span   = [sT.span(1:where-1,:,:); spans; sT.span(where:end,:,:)];   end case 'removecol',  where      = setdiff(1:ncT,arg1);       sT.values  = sT.values(:,where);   sT.headers = sT.headers(:,where);   sT.span    = sT.span(:,where,:);  case 'removerow',  where      = setdiff(1:nrT,arg1);       sT.values  = sT.values(where,:);   sT.headers = sT.headers(where,:);   sT.span    = sT.span(where,:,:); endreturn;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -