www.gusucode.com > rtw 工具箱matlab源码程序 > rtw/release_version.m
function releaseVersion = release_version %RELEASE_VERSION - Return a version string of the form R14, R14SP2, R14SP2plus etc. % % The release version is parsed by looking at the output of the % ver('simulinkcoder') string. This function is expecting a struct % with 'Version' and 'Release' fields containing one of the following: % % Version Release % M.m (R#) % M.m (R#SPm) % M.m.p (R#SP#+) % % where M = major release num, m = minor release num, p = patch num % % Copyright 1994-2011 The MathWorks, Inc. % persistent cachedVersion if isempty(cachedVersion) cachedVersion = ver('simulinkcoder'); end if isempty(cachedVersion) % if cachedVersion is still empty here, then Simulink Coder is not % available (not installed) releaseVersion = 'SimulinkCoderNotAvailable'; return; end % break the Version number into it's parts. the regexp call will put all % of the numbers in separate elements in the vnum vector. [vnum, ~] = regexp(cachedVersion.Version,'(\d+)','tokens','match'); shownum = false; switch length(vnum) case 2 dacore = ''; case {3} dacore = char(vnum{3}); num3 = sscanf(char(vnum{3}),'%d'); shownum = (num3 > 0); case {4} num3 = sscanf(char(vnum{3}),'%d'); num4 = sscanf(char(vnum{4}),'%d'); if ((num3 > 0) || (num4 > 0)) dacore = char(vnum{3}); if (num4 > 0) dacore = [dacore '.' char(vnum{4})]; end shownum = true; end otherwise DAStudio.error('RTW:utility:unknownReleaseVersion'); end % get the release string without the '(' ')' rel = regexprep(cachedVersion.Release,'[\(\)]',''); % replace spaces with '_' rel = regexprep(rel,' ','_'); % now replace any '+' with the word plus rel = regexprep(rel,'\+','plus'); % finally, if the dacore version is greater than 1, add it to the end of % the rel string. This results in the following output (arbitrary % release values shown): % % Version Release output % 6.0 (R14) R14 % 6.2.1 (R14SP2+) R14SP2plus1 % 6.2.2 (R14SP2+) R14SP2plus2 % 6.2.3.4 (R14SP2+) R14SP2plus3.4 % 6.6.0.1 (R2007a Prerelease) R2007a_Prerelease0.1 % 6.6.100.12 (R2007a Prerelease) R2007a_Prerelease100.12 if shownum rel = sprintf('%s_%s', rel, dacore); end releaseVersion = rel; %endfunction release_version % LocalWords: simulinkcoder SPm vnum dacore