📄 som_table_modify.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 + -