我现在用的是MATLAB2018b,调用的是surfer13.MATLAB和surfer安装在D盘的program里。程序如下:
%% 调用surfer绘制散点图
%启动surfer
srf = actxserver('Surfer13.application');
%% 设置surfer相关参数
set(srf,'visible',1); %设置窗口可见
Path='D:\Program Files\Scatter'; %设置工作目录
%% 读取散点图数据文件
File=dir(fullfile(Path,'*.xlsx')); %显示所有路径文件夹下的电子表文件信息
FileNames={File.name'}; %提取文件名,列显示
Length_Names=size(FileNames,1); %文件个数
for ii=1:Length_Names
%连接路径和文件名得到完整的文件路径
ii_Trace=strcat(Path,FileNames(ii));
eval(['Data',mun2str(ii),'=','load(ii_Trace{1,1})',';']); %读取数据
%eval(),括号里的内容按照命令执行
%eval(['a','=','2','+','3',';'])即a=2+3;
end
set(srf,'ScreenUpdating',0); %设置图形窗口是否刷新1刷新0不刷新
set(srf,'PageUnits','srfUnitsCentimeter'); %单位厘米
% % % %绘制等值线图
% % % % invoke(h,'GridData','originalData.dat')
%设置散点图参数
postmap1=invoke(srf,'MapNewPostMap','Scatter1.dat'); %调用散点命令
set(postmap1.Post-FileNames.General,'X coordinates','Column B',...
'Y coordinates','Column C'); %读取散点坐标
set(postmap1.LeftAxis,'visible',1); %显示右轴
set(postmap1.RightAxis,'visible',1); %显示左轴
set(postmap1.TopAxis,'visible',1); %显示上轴
set(postmap1.BottomAxis,'visible',1); %显示下轴
set(postmap1.LeftAxis.Labels,'fonts','宋体','size',12); %左轴数字属性
set(postmap1.BottomAxis.Labels,'fonts','宋体','size',12); %底轴数字属性
set(postmap1.LeftAxis.Scaling,'MajorInterval',20); %左轴间隔
set(postmap1.RightAxis.Scaling,'MajorInterval',20); %右轴间隔
set(postmap1.TopAxis.Scaling,'MajorInterval',20); %顶轴间隔
set(postmap1.BottomAxis.Scaling,'MajorInterval',20); %底轴间隔
set(postmap1.Post-FileNames.Symbol,'Symbol','Symbol 12','Fill color',...
'red','Line color','black'); %散点符号表现形式
set(postmap1.Post-FileNames.Symbol,'Symbol size',0.3); %散点符号表现形式
set(postmap1.Post-FileNames.Labels,'Worksheet Column','Column A',...
'Position relative to symbol','Right','font','宋体',...
'size(points)',12,'Foreground','red'); %散点编号属性
%% 保存图件
invoke(srf,'FileExport','FileNames.jpg'); %调用输出命令;
出现的错误:
Untitled333
错误使用 actxserver (line 93)
创建服务器失败。ProgID 'Surfer.Application' 无效。
出错 Untitled333 (line 3)
srf=actxserver('Surfer.Application');
请高手指点迷津。