本帖最后由 kezhang1995 于 2019-10-22 13:31 编辑
完整程序如下:
[code]
clc;
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% read data
fileID = fopen('F:\CH2018BST.txt');
formatSpec = '%s';
C = textscan(fileID,formatSpec);
L = length(C{1,1});
m = 1;
TN = 1;
while m<=L
CStr = C{1,1}(m,1);
N = str2num(CStr{1,1});
if N == 66666
m = m+2;
CStr = C{1,1}(m,1);
DataLines = str2num(CStr{1,1});
m = m+7;
end
for n=1:DataLines
for i=1:6
CStr = C{1,1}(m,1);
N = str2num(CStr{1,1});
BSTData{TN,1}(n,i) = N;
m = m+1;
end
end
TN = TN+1;
end
% figure(1);
% for m=1:length(BSTData)
% lat = BSTData{m,1}(:,3)*0.1;
% lon = BSTData{m,1}(:,4)*0.1;
% hold on; plot(lon,lat,'b.-');
% end
% read LAT and LON
for TN =1:length(BSTData)
DataLines = length(BSTData{TN,1});
for n=1:DataLines
for i=1:2
if i == 1
Ydata{TN,1}(n,i) = BSTData{TN,1}(n,i+3)*0.1; % lon
else
Ydata{TN,1}(n,i) = BSTData{TN,1}(n,i+1)*0.1; % lat
end
end
end
TN = TN+1;
end
Y = Ydata;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Use CCToolbox
cd ('D:\MATLAB\R2018a\toolbox\CCToolbox');
% setcctpath;
ops.method = 'lrm';
ops.order = 2;
ops.K = 3;
ops.zero = 'none'
ops.NumEMStarts = 5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
model = curve_clust(Y,ops);
showmodel(model,Y);
[/code]
出问题的语句是:
[code]
model = curve_clust(Y,ops);
showmodel(model,Y);
[/code]
错误信息:
无法执行赋值,因为此类型的变量不支持使用点进行索引。
出错 trajs2seq (line 67)
if (~isfield(trajs,'Y')), trajs.Y = trajs; end
出错 lrm (line 51)
[Y,X,Seq] = trajs2seq(trajs,M.zero,M.Options.MinLen);
出错 lrm_capi (line 28)
M = lrm(trajs,K,Ops.order,Ops);
出错 curve_clust (line 99)
M = feval(capi_func,trajs,Ops.K,Ops);
出错 ReadFromCycloneTrackTxt (line 61)
model = curve_clust(Y,ops);
我是用的版本是R2018a,电脑操作系统是win7 64位。请问这个错误应该怎么解决?谢谢
第三方工具箱和数据例子见附件