功能如何从“许可证”对应的名字“版本”

213(30天)
我目前有点挣扎试图建立一个适当的机制来检查一个matlab工具箱的存在和可用性。
使用“版本”,我知道我能得到所有工具箱安装在name字段的列表的结构,并且使用的许可证(“测试”,featurename)我可以检查,是否这个工具箱实际上是许可证(并因此可以使用)。
问题是,“版本”的名字不清楚对应特征字符串中使用(如“许可证”。“全局优化工具箱”变成了“Optimization_Toolbox”)。有一个列表 https://nl.mathworks.com/help/matlab/ref/license.html 这一群“相应”功能/产品细节对,但是因为什么出现在name字段matlab版本之间的变化,我不想依赖于此。
有没有找到相应的编程方式从至少2014 b的值是有效的吗?

接受的答案

沃尔特·罗伯森”class=
沃尔特·罗伯森 2018年1月18日
编辑:沃尔特·罗伯森 2019年2月14日
这是我提供给我的数据:
licver_info = {
“航天Blockset”“Aerospace_Blockset”“aeroblks”
“航天工具箱”“Aerospace_Toolbox”“航空”
“天线工具箱”“Antenna_Toolbox”“天线”
“音频系统工具箱”“Audio_System_Toolbox”“音频”
“生物信息工具箱”“Bioinformatics_Toolbox”“bioinfo”
“通信系统工具箱”“Communication_Toolbox”“通讯”
“计算机视觉系统工具箱”“Video_and_Image_Blockset”“愿景”
控制系统工具箱的“Control_Toolbox”“控制”
的曲线拟合工具箱“Curve_Fitting_Toolbox”“curvefit”
“DSP系统工具箱”“Signal_Blocks”“dsp”
“数据采集工具箱”“Data_Acq_Toolbox”“数据收集”
“数据库工具”“Database_Toolbox”“数据库”
“数据处理工具箱”“Datafeed_Toolbox”“数据处理”
“深度学习工具箱”“Neural_Network_Toolbox”“nnet”
“计量经济学工具箱”“Econometrics_Toolbox”“经济学”
“嵌入式编码”“RTW_Embedded_Coder”“embeddedcoder”
“金融工具的工具箱”“Fin_Instruments_Toolbox”“fininst”
“金融工具箱”“Financial_Toolbox”“金融”
“定点设计师”“Fixed_Point_Toolbox”“定点”
“模糊逻辑工具箱”“Fuzzy_Toolbox”“模糊”
“全局优化工具箱”“GADS_Toolbox”“globaloptim”
“图像采集工具箱”“Image_Acquisition_Toolbox”“imaq”
“图像处理工具箱”“Image_Toolbox”“图片”
“仪器控制工具箱”“Instr_Control_Toolbox”“工具”
MATLAB的MATLAB的“一般”
MATLAB编码器的“MATLAB_Coder”“matlabcoder”
MATLAB编译器的编译器的编译器的
“MATLAB报告生成器”“MATLAB_Report_Gen”“rptgen”
“映射工具箱”“MAP_Toolbox”“地图”
“模型预测控制工具箱”“MPC_Toolbox”“货币政策委员会”
神经网络工具箱的“Neural_Network_Toolbox”“nnet”
“优化工具箱”“Optimization_Toolbox”“optim”
“并行计算工具箱”“Distrib_Computing_Toolbox”“distcomp”
“偏微分方程工具箱”“PDE_Toolbox”pde的
“相控阵系统工具箱”“Phased_Array_System_Toolbox”“分阶段”
“Polyspace Bug仪”“PolySpace_Bug_Finder”“psbugfinder”
“Polyspace Bug仪”“PolySpace_Bug_Finder_Engine”“psbugfinder”
“Polyspace代码验证”“PolySpace_Server_C_CPP”“pscodeprover”
“射频Blockset”“RF_Blockset”“rfblks”
“射频工具箱”“RF_Toolbox”“射频”
“机器人系统工具箱”“Robotics_System_Toolbox”“机器人”
“鲁棒控制工具箱”“Robust_Toolbox”“稳健”
“信号处理工具箱”“Signal_Toolbox”“信号”
“SimBiology”“Simbiology”“simbio”
“SimEvents”“SimEvents”“simevents”
“Simscape”“Simscape”“simscape”
“Simscape动力传动系统的“SimDriveline”“sdl”%可能“simdrive”
“Simscape电子”“SimElectronics”“电”
“Simscape液体”“SimHydraulics”“液体”
“Simscape多体”“SimMechanics”“机械工程”
“Simscape电力系统”“Power_System_Blocks”“sps”
“万博1manbetx模型”“万博1manbetx模型”“万博1manbetx模型”
“万博1manbetx3 d动画仿真软件”“Virtual_Reality_Toolbox”“sl3d”
仿万博1manbetx真软件编码器的“Real-Time_Workshop”“万博1manbetxsimulinkcoder”
仿万博1manbetx真软件控制设计的“万博1manbetxSimulink_Control_Design”“slcontrol”
“万博1manbetx仿真软件设计优化”“万博1manbetxSimulink_Design_Optim”“sldo”
“万博1manbetx桌面实时仿真软件”“Real-Time_Win_Target”“sldrt”
“万博1manbetx实时仿真软件”“XPC_Target”“xpctarget”%可能不正确
“万博1manbetx仿真软件报告生成器”“万博1manbetxSIMULINK_Report_Gen”“rptgenext”
“电子表格链接”“Excel_Link”“excellink”
“Stateflow”“Stateflow”“stateflow”
“统计和机器学习的工具箱”“Statistics_Toolbox”“统计数据”
“符号数学工具箱”“Symbolic_Toolbox”“象征”
“系统辨识工具箱”“Identification_Toolbox”“识别”
“交易工具箱”“Trading_Toolbox”“交易”
“车辆网络工具箱”“Vehicle_Network_Toolbox”“vehiclenetwork”%可能不正确
“视觉HDL工具箱”“Vision_HDL_Toolbox”“vision-hdl”%可能不正确
“小波工具箱”“Wavelet_Toolbox”“小波”};
这是得到了:
1)fileread()我的一个.lic文件;正则表达式()与“令牌”两次,一次集中 产品= = 紧随其后的是一个词产品描述,一旦集中 =“产品= 紧随其后的是一个多词产品描述直到第一 。无论哪种情况,许可证的名字后立即()的目的 增量 在文件中。那么多文字描述需要过滤去除文字\后跟换行空格紧随其后。把一切都成N x 2单元阵列。
2)版本。m。如果你 哪一个版本 你可能会版本。但事实证明,电话版本。你可以找到的位置 这——版本 。有一个常规locParseContentsFiles使用寻找所有内容。m文件。然后阅读这些文件并查找的特定格式。的发现,它增加了一个结构体。黑客是撕开文件名来提取之前的最后一个目录的内容。米的部分和纪录的结构。运行版本()将输出分配给一个变量,它将成为一个结构体。提取名称字段和字段保存的目录名称。
3)创建两个表的两个各自的信息来源,给予相同的变量名从第一个许可证信息,产品描述和名称字段从版本的结果()。现在innerjoin()这两个表;自动将使用共同的关键。table2cell()的结果innerjoin()获得上述信息。
7评论
breathi”class=
breathi 2020年1月22日
编辑:breathi 2020年6月8日
嘿,沃尔特,
你可以添加以下产品列表:s manbetx 845
AUTOSARBlocksetAUTOSAR_Blockset
过滤器高密度脂蛋白编码器设计Filter_Design_HDL_Coder
过滤器设计工具箱Filter_Design_Toolbox
IEC认证工具包Cert_Kit_IEC
MATLAB编译器SDKMATLAB_Builder_for_Java<——不确定关于这个
万博1manbetx检查SL_Verification_Validation
万博1manbetx代码检查万博1manbetxSimulink_Code_Inspector
万博1manbetx报道万博1manbetxSimulink_Coverage
万博1manbetx设计验证器万博1manbetxSimulink_Design_Verifier
万博1manbetx需求万博1manbetxSimulink_Requirements
万博1manbetx测试万博1manbetxSimulink_Test
预测维修工具箱Pred_Maintenance_Toolbox

登录置评。

更多的答案(5)

朱利安Hapke”class=
朱利安Hapke 2020年5月4日
编辑:朱利安Hapke 2020年5月5日
以下是我使用:
编辑:现在所有功能列出当前版本,不仅安装的。
函数= getFeatureName (fullname)
% getFeatureName——翻译一个工具箱的名字从“版本”
%功能名称,反之亦然,也可用性检查许可证
%
%的语法:
% getFeatureName (fullname)
%
%的输入:
% fullname:特征向量的工具箱中列出的版本名称
%输出(可选的,如果没有给所有功能
%上市)
%
%输出:
%的翻译:单元阵列有明确的名称、功能名称和许可证
%的可用性
%
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% 1.1版本
% 2018.09.04朱利安Hapke
% 2020.05.05检查所有功能当前版本
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
断言(输入参数个数< 2,“太多的输入参数”)
%的违约
checkAll = true;
installedOnly = false;
如果输入参数个数
checkAll = false;
installedOnly = strcmp (fullname,“安装”);
结束
如果checkAll | | installedOnly
allToolboxes = com.mathworks.product.util.ProductIdentifier.values;
nToolboxes =元素个数(allToolboxes);
=细胞(nToolboxes 3);
iToolbox = 1: nToolboxes
marketingName = char (allToolboxes (iToolbox) . getname ());
flexName = char (allToolboxes (iToolbox) .getFlexName ());
{iToolbox 1} = marketingName;
{iToolbox 2} = flexName;
{iToolbox 3} =许可证(“测试”,flexName);
结束
如果installedOnly
installedToolboxes =版本;
installedToolboxes = {installedToolboxes.Name} ';
出= (ismember ((: 1), installedToolboxes),:);
结束
如果nargout
出=;
其他的
= ({“名字”,“特征码名称”,许可使用的};);
disp(出)
结束
其他的
productidentifier = com.mathworks.product.util.ProductIdentifier.get (fullname);
如果(isempty (productidentifier))
警告(“% s”没有找到。”fullname)
=细胞(1、3);
返回
结束
特点= char (productidentifier.getFlexName ());
= ({char (productidentifier.getName())}{功能}{许可证(“测试”特性)});
结束
结束
3评论
朱利安Hapke”class=
朱利安Hapke 2020年5月5日
关于名字:我想这是历史。许可功能得到了营销的名字用下划线代替空格然后营销改变了功能的名字,但是它保持不变在许可服务。如。 https://web.archive.org/web/20000815202232/http: / /www.mathworks.cos manbetx 845m/products/
然后是“ 实时窗口目标 ”,现在是“实时仿真软件桌万博1manbetx面”,但功能名称总是“Real-Time_Win_Target”。

登录置评。


托马斯Pfau”class=
托马斯Pfau 2018年1月18日
首先,谢谢你的回答。我害怕这样,是的,我可能要自己的工具箱/许可证特性映射....信息(这是一个痛苦)。

1月”class=
1月 2018年1月18日
你必须依靠的东西。因为这不是微不足道的,当名称或关键变化时,编写自己的函数可能是最简单的方法:
函数hasToolbox = CheckToolbox(特性)
持续的ExistingToolboxes
如果isempty (ExistingToolboxes)
PrefFile = fullfile (prefdir,“CheckToolbox.data”);
如果存在(PrefFile“文件”)现有已经%首选项文件:
FileData =负载(PrefFile,“垫”);
ExistingToolboxes = FileData.ExistingToolboxes;
其他的%需要创建新的首选项文件:
ExistingToolboxes = SelectToolboxesGUI ({});
结束
结束
%允许手动打开选择的GUI工具箱:
如果strcmpi(功能,“LetMeChoose”)
ExistingToolboxes = SelectToolboxesGUI (ExistingToolboxes)
其他的
hasToolbox =任何(strcmpi(特性,ExistingToolboxes);
结束
结束
函数ExistingToolboxes = SelectToolboxesGUI (ExistingToolboxes)
一个微小的GUI来选择现有的工具箱…
结束
现在轮到用户发现,如果需要安装许可证。您还可以添加一组已知的功能键有用的错误信息,如果有人问CrystalBall或DWIM工具箱。但是你不能检查,如果有可用的许可证的并发许可使用此工具。
好吧,这个问题不是解决了这个函数。已经很难检查Matlab版本,当他们跳的R6.5 R2007b计划,和之后的问题来区分版本7.1和7.10。有时功能从一个特定的工具箱Matlab的标准工具箱,然后拒绝检查工具箱可以太严格了,当一个函数可以工作。

杰瑞·乔治。”class=
杰瑞·乔治。 2019年6月18日
编辑:杰瑞·乔治。 2019年6月18日
您可以使用以下命令按你们的许可证可用功能列表:
文本= fileread (fullfile (matlabroot“许可证”,“license.dat”));
表达=‘(?< =增量)\ w *’;
= regexp匹配(文本、表情,“匹配”);
disp(匹配);

庆阳杜”class=
庆阳杜 2022年7月18日
5 g_toolbox
Aerospace_Blockset
Aerospace_Toolbox
Antenna_Toolbox
Audio_System_Toolbox
Audio_Toolbox
Automated_Driving_System_Toolbox
Automated_Driving_Toolbox
AUTOSAR_Blockset
Bioinformatics_Toolbox
Bluetooth_Toolbox
CDMA_Reference_Blockset
Communications_Blockset
Communications_System_Toolbox
Communications_Toolbox
Computer_Vision_System_Toolbox
Computer_Vision_Toolbox
Control_System_Toolbox
Curve_Fitting_Toolbox
Data_Acquisition_Toolbox
Database_Toolbox
Datafeed_Toolbox
DDS_Blockset
Deep_Learning_HDL_Toolbox
Deep_Learning_Toolbox
Distributed_Computing_Toolbox
DO_Qualification_Kit
DSP_HDL_Toolbox
DSP_System_Toolbox
Econometrics_Toolbox
EDA_Simulator_Link
EDA_Simulator_Link_DS
EDA_Simulator_Link_IN
EDA_Simulator_Link_MQ
Embedded_Coder
Embedded_IDE_Link
Embedded_IDE_Link_CC
Embedded_IDE_Link_MU
Embedded_IDE_Link_TS
Embedded_IDE_Link_VS
Embedded_Target_for_Infineon_C166_Microcontrollers
Embedded_Target_for_Motorola_HC12
Embedded_Target_for_Motorola_MPC555
Embedded_Target_for_OSEK_VDX
Embedded_Target_for_TI_C2000_DSP
Embedded_Target_for_TI_C6000_DSP
Excel_Link
Extended_Symbolic_Math_Toolbox
Filter_Design_HDL_Coder
Filter_Design_Toolbox
Financial_Derivatives_Toolbox
Financial_Instruments_Toolbox
Financial_Time_Series_Toolbox
Financial_Toolbox
Fixed_Income_Toolbox
Fixed_Point_Designer
Fixed_Point_Toolbox
Fixed-Income_Toolbox
Fixed-Point_Designer
Fixed-Point_Toolbox
Fuzzy_Logic_Toolbox
GARCH_Toolbox
Gauges_Blockset
Genetic_Algorithm_and_Direct_Search_Toolbox
Global_Optimization_Toolbox
GPU_Coder
HDL_Coder
HDL_Verifier
IEC_Certification_Kit
Image_Acquisition_Toolbox
Image_Processing_Toolbox
Industrial_Communication_Toolbox
Instrument_Control_Toolbox
Lidar_Toolbox
Link_for_Code_Composer_Studio
Link_for_ModelSim
Link_for_TASKING
LTE_HDL_Toolbox
LTE_System_Toolbox
LTE_Toolbox
Mapping_Toolbox
MATLAB
MATLAB_Builder_EX
MATLAB_Builder_for_.NET
MATLAB_Builder_for_COM
MATLAB_Builder_for_Excel
MATLAB_Builder_for_Java
MATLAB_Builder_for_Java_Language
MATLAB_Builder_JA
MATLAB_Builder_NE
MATLAB_Coder
MATLAB_Compiler
MATLAB_Compiler_SDK
MATLAB_Distributed_Computing_Engine
MATLAB_Distributed_Computing_Server
MATLAB_Parallel_Server
MATLAB_Production_Server
MATLAB_Report_Generator
MATLAB_Web_App_Server
MATLAB_Web_Server
Mixed_Signal_Blockset
Mixed-Signal_Blockset
Model_Based_Calibration_Toolbox
Model_Predictive_Control_Toolbox
Model-Based_Calibration_Toolbox
Motor_Control_Blockset
Navigation_Toolbox
Neural_Network_Toolbox
OPC_Toolbox
Optimization_Toolbox
Parallel_Computing_Toolbox
Partial_Differential_Equation_Toolbox
Phased_Array_System_Toolbox
Polyspace_Bug_Finder
Polyspace_Bug_Finder_Server
Polyspace_Code_Prover
Polyspace_Code_Prover_Server
Powertrain_Blockset
Predictive_Maintenance_Toolbox
Radar_Toolbox
Real_Time_Windows_Target
Real_Time_Workshop
Real_Time_Workshop_Embedded_Coder
Real-Time_Windows_Target
Real-Time_Workshop
Real-Time_Workshop_Embedded_Coder
Reinforcement_Learning_Toolbox
Requirements_Toolbox
RF_Blockset
RF_PCB_Toolbox
RF_Toolbox
Risk_Management_Toolbox
Robotics_System_Toolbox
Robust_Control_Toolbox
ROS_Toolbox
Satellite_Communications_Toolbox
Sensor_Fusion_and_Tracking_Toolbox
SerDes_Toolbox
Signal_Integrity_Toolbox
Signal_Processing_Blockset
Signal_Processing_Toolbox
SimBiology
SimDriveline
SimElectronics
SimEvents
SimHydraulics
SimMechanics
SimPowerSystems
SimRF
Simscape
Simscape_Driveline
Simscape_Electrical
Simscape_Electronics
Simscape_Fluids
Simscape_Multibody
Simscape_Power_Systems
万博1manbetx
万博1manbetxSimulink_3D_Animation
万博1manbetxSimulink_Accelerator
万博1manbetxSimulink_Check
万博1manbetxSimulink_Code_Inspector
万博1manbetxSimulink_Coder
万博1manbetxSimulink_Compiler
万博1manbetxSimulink_Control_Design
万博1manbetxSimulink_Coverage
万博1manbetxSimulink_Design_Optimization
万博1manbetxSimulink_Design_Verifier
万博1manbetxSimulink_Desktop_Real_Time
万博1manbetxSimulink_Desktop_Real-Time
万博1manbetxSimulink_Fixed_Point
万博1manbetxSimulink_HDL_Coder
万博1manbetxSimulink_Parameter_Estimation
万博1manbetxSimulink_PLC_Coder
万博1manbetxSimulink_Real_Time
万博1manbetxSimulink_Real-Time
万博1manbetxSimulink_Report_Generator
万博1manbetxSimulink_Requirements
万博1manbetxSimulink_Response_Optimization
万博1manbetxSimulink_Test
万博1manbetxSimulink_Verification_and_Validation
SoC_Blockset
Spline_Toolbox
Spreadsheet_Link
Spreadsheet_Link_EX
Stateflow
Stateflow_Coder
Statistics_and_Machine_Learning_Toolbox
Statistics_Toolbox
Symbolic_Math_Toolbox
System_Composer
System_Identification_Toolbox
SystemTest
Target_for_Freescale_MPC5xx
Target_for_Infineon_C166
Target_for_TI_C2000
Target_for_TI_C6000
Target_万博1manbetxSupport_Package
Target_万博1manbetxSupport_Package_FM5
Target_万博1manbetxSupport_Package_IC1
Target_万博1manbetxSupport_Package_TC2
Target_万博1manbetxSupport_Package_TC6
Text_Analytics_Toolbox
Trading_Toolbox
UAV_Toolbox
Vehicle_Dynamics_Blockset
Vehicle_Network_Toolbox
Video_and_Image_Processing_Blockset
Virtual_Reality_Toolbox
Vision_HDL_Toolbox
Wavelet_Toolbox
Wireless_HDL_Toolbox
Wireless_Testbench
WLAN_System_Toolbox
WLAN_Toolbox
xPC_Target
xPC_Target_Embedded_Option

类别

找到更多的在模型制备帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!