Mercurial > hg > octave-nkf
view scripts/control/syschnamesl.m @ 3383:ebf69eb3d07d
[project @ 1999-12-15 21:27:56 by jwe]
author | jwe |
---|---|
date | Wed, 15 Dec 1999 21:28:01 +0000 |
parents | 69b167451491 |
children | 10f21f7ccc7f |
line wrap: on
line source
## Copyright (C) 1996 Auburn University. All Rights Reserved. ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by the ## Free Software Foundation; either version 2, or (at your option) any ## later version. ## ## Octave is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. ## -*- texinfo -*- ## @deftypefn {Function File } { } syschnamesl ## used internally in syschnames ## item olist: index list ## old_names: original list names ## inames: new names ## listname: name of index list ## ## combines the two string lists old_names and inames ## @end deftypefn function old_names = syschnamesl(olist,old_names,inames,listname) ## $Revision: 2.1.14.5 $ ## $Log: syschnamesl.m,v $ ## Revision 2.1.14.5 1999/09/22 21:55:46 scotte ## Auburn copyright fixed; krylov.m patched to fix bug ## ## Revision 2.1.14.4 1999/07/21 19:49:21 scotte ## sysgroup, sysadd, sysmult, syssub accept variable # of input args ## ## Revision 1.3 1998/07/17 15:08:50 hodelas ## use isempty instead of max(size(...)) ## ## Revision 1.2 1998/07/01 16:23:39 hodelas ## Updated c2d, d2c to perform bilinear transforms. ## Updated several files per bug updates from users. ## ## Revision 1.5 1997/02/28 23:47:26 hodel ## fixed bug in checking parameters; (inames dimension not checked against olist) ## a.s.hodel@eng.auburn.edu ## ## Revision 1.4 1997/02/13 15:56:37 hodel ## added code to convert zeros in the name matrix to blanks ## a.s.hodel@eng.auburn.edu ## ## Revision 1.3 1997/02/13 15:11:17 hodel ## fixed bug when len_my < len_out a.s.hodel@eng.auburn.edu ## ## Revision 1.2 1997/02/12 22:54:50 hodel ## fixed string matrix <-> numerical matrix problem probstr = []; if( max(olist) > rows(old_names) ) probstr = ["index list value(s) exceed(s) number of signals (", ... num2str(rows(old_names)),")"]; elseif( length(olist) > rows(inames) ) probstr = ["index list dimension exceeds number of replacement names (", ... num2str(rows(inames)),")"]; elseif(isempty(olist)) probstr = []; # do nothing, no changes elseif(min(size(olist)) != 1 ) probstr = "index list must be either a vector or an empty matrix"; elseif(max(olist) > rows(old_names)) probstr = ["max(",listname,")=",num2str(max(olist))," > ", ... num2str(rows(old_names)),", too big"]; elseif(min(olist) < 1) probstr = ["min(",listname,")=",num2str(min(olist))," < 1, too small"]; else if( length(olist) == 1) len_in = columns(inames); len_out = columns(old_names); if (len_in < len_out) inames(1,(len_in+1):(len_out)) = zeros(1,(len_out - len_in)); endif old_names(olist,1:length(inames)) = inames; elseif(length(olist) > 1) for ii=1:length(olist) mystr = inames(ii,:); len_my = columns(mystr); len_out = columns(old_names); if (len_my < len_out) mystr(1,(len_my+1):(len_out)) = " "*ones(1,(len_out - len_my)); len_my = len_out; endif old_names(olist(ii),1:len_my) = mystr; endfor endif endif if(!isempty(probstr)) ## the following lines are NOT debugging code! disp("Problem in syschnames: old names are") outlist(old_names," ") disp("new names are") outlist(inames," ") disp("list indices are") disp(olist) error(sprintf("syschnames: \"%s\" dim=(%d x %d)--\n\t%s\n", ... listname, rows(olist), columns(olist),probstr)); endif ## change zeros to blanks if( find(old_names == 0) ) ## disp("syschnamesl: old_names contains zeros ") ## old_names ## disp("/syschnamesl"); [ii,jj] = find(old_names == 0); for idx=1:length(ii) old_names(ii(idx),jj(idx)) = " "; endfor ## disp("syschnamesl: old_names fixed zeros ") ## old_names ## disp("/syschnamesl"); endif ## just in case it's not a string anymore if( !isstr(old_names) ) old_names = setstr(old_names); endif ## disp("syschnamesl: exit, old_names=") ## old_names ## disp("/syschnamesl: exiting") endfunction