📄 fieldrename.m
字号:
function theResult = fieldrename(theStruct, varargin)% fieldrename -- Rename fields in a "struct".% fieldrename(theStruct, 'theFieldName', 'theNewName') renames% 'theFieldName' to 'theNewName' in theStruct. The arguments% can be entered on the command line without parentheses, in% which case, 'theStruct' will be treated as the name of the% actual struct in the caller's workspace. More than one% fieldname can be changed during a single call by appending% additional fieldname/newname pairs to the argument list.% An empty new-name ('') causes that particular field to be% eliminated from the structure. % Copyright (C) 1999 Dr. Charles R. Denham, ZYDECO.% All Rights Reserved.% Disclosure without explicit written consent from the% copyright owner does not constitute publication. % Version of 13-Sep-1999 11:45:49.% Updated 20-Dec-1999 15:56:48.if nargin < 3, return, endtheStructName = inputname(1);if ischar(theStruct) theStructName = theStruct; theStruct = evalin('caller', theStructName);endupdate = 0;f = fieldnames(theStruct);g = f;for j = 1:2:length(varargin) theFieldName = varargin{j}; theNewName = varargin{j+1}; if isequal(theNewName, '''''') | isequal(theNewName, '[]') theNewName = ''; end for i = length(g):-1:1 if isequal(g{i}, theFieldName) if isempty(theNewName) g(i) = []; else g{i} = theNewName; end update = 1; break end endendif update & length(g) > 0 result = cell(1, 2*length(g)); k = 0; for i = 1:length(g) result{k+1} = g{i}; result{k+2} = cell(size(theStruct)); for j = 1:prod(size(theStruct)) theValue = getfield(theStruct(j), f{i}); result{k+2}{j} = theValue; end k = k+2; end result = struct(result{:});else result = [];endif nargout > 0 theResult = result;else assignin('caller', theStructName, result)end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -