linux系统下Matlab 读json数据可分为两步:
1.首先json文件转为结构体数据类型
2.matlab读入结构体数据
网址:https://github.com/fangq/jsonlab
下载:loadjson.m mergestruct.m varargin2struct.m文件
loadjson.m mergestruct.m mypara_input.m spwinfo.json test.sh varargin2struct.m
spwinfo.json文件内容:
{"use_gpu":1,"use_cpu":2,"use_name":"SPW"}
mypara_input.m文件:内容
function [result]=mypara_input(S)
ip = inputParser;
%接下来设定默认值,还可以指定是必须参数还是可选参数等。
ip.addOptional('use_gpu', 1,@isnumeric);
ip.addOptional('use_cpu', 1,@isnumeric);
ip.addOptional('use_name', 1);
% ip.addOptional(input, defaultinput, func)
%其他还有 ip.addParameter(),ip.addRequired()等函数可用
%然后将输入的参数进行处理,如果有不同于默认值的那就覆盖掉
% ip.parse(varargin{:});
ip.parse(S);
result=ip.Results;
end
Linux系统下执行test.sh文件:
matlab -nodesktop -nosplash -r "mypara_input(loadjson('spwinfo.json'))"
运行:
source test.sh
结果:
Warning: Unable to open display ':0'. You will not be able to display graphics on the screen.
Warning: No window system found. Java option 'MWT' ignored
< M A T L A B (R) >
Copyright 1984-2012 The MathWorks, Inc.
R2012a (7.14.0.739) 64-bit (glnxa64)
February 9, 2012
To get started, type one of these: helpwin, helpdesk, or demo.
For product information, visit www.mathworks.com.
ans =
use_cpu: 2
use_gpu: 1
use_name: 'SPW'
use_pwd: 1