[已答复] MATLAB CCToolbox 台风路径聚类工具箱使用问题

[复制链接]
kezhang1995 发表于 2019-10-22 13:29:45
本帖最后由 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位。请问这个错误应该怎么解决?谢谢
第三方工具箱和数据例子见附件

CCToolbox-098.zip

288.56 KB, 下载次数: 23

工具箱

CH2018BST.txt

13.24 KB, 下载次数: 23

台风路径数据

12 条回复


lovelysuzy 发表于 2019-10-31 12:22:19
请问一下楼主解决了吗

lovelysuzy 发表于 2019-11-1 17:12:54
解决了楼主,你把那个路径的数组放到结构体数组里面,然后结构体名称定义为Y就ok了

songkx 发表于 2019-11-5 21:19:09
lovelysuzy 发表于 2019-11-1 17:12
解决了楼主,你把那个路径的数组放到结构体数组里面,然后结构体名称定义为Y就ok了 ...

请问你是怎么把路径的数组放入结构体数组里的?可以给复制一段后面的脚本吗

yjsrqby 发表于 2019-11-7 22:35:51
lovelysuzy 发表于 2019-11-1 17:12
解决了楼主,你把那个路径的数组放到结构体数组里面,然后结构体名称定义为Y就ok了 ...

请问楼主该怎么把路径数组放到结构体数组里去呢,求具体的脚本啊

wszkj 发表于 2019-11-8 11:09:50
lovelysuzy 发表于 2019-11-1 17:12
解决了楼主,你把那个路径的数组放到结构体数组里面,然后结构体名称定义为Y就ok了 ...

围观大神

lovelysuzy 发表于 2019-11-8 12:17:34
yjsrqby 发表于 2019-11-7 22:35
请问楼主该怎么把路径数组放到结构体数组里去呢,求具体的脚本啊

楼主脚本里不是已经有Y了么,你就X.Y=Y,把X放到那个工具箱里去运行就好了

suxian 发表于 2019-12-19 23:45:18
请问楼主,该程序在showmodel模块时,有没有出现,能出图,但是显示出现错误如下:
错误使用 cell2mat (line 52)
CELL2MAT 不支持包含元胞数组或对象的元胞数组。

出错 viewmodel (line 52)
if (iscell(xhnds)), xhnds = cell2mat(xhnds); end

出错 showmodel (line 81)
  viewmodel(model, trajs, ops);

ZQwith123 发表于 2020-10-14 16:35:22
suxian 发表于 2019-12-19 23:45
请问楼主,该程序在showmodel模块时,有没有出现,能出图,但是显示出现错误如下:
错误使用 cell2mat (lin ...

我也出现了这样的问题

bibibol 发表于 2020-10-27 14:57:45
ZQwith123 发表于 2020-10-14 16:35
我也出现了这样的问题

我也出现了类似问题,请问大家有没有解决这个问题

wx_pXBqtfgG 发表于 2021-8-27 16:13:25
suxian 发表于 2019-12-19 23:45
请问楼主,该程序在showmodel模块时,有没有出现,能出图,但是显示出现错误如下:
错误使用 cell2mat (lin ...

在viewmodel中注释掉出现代码
1.jpg

wx_pXBqtfgG 发表于 2021-8-27 16:13:56
suxian 发表于 2019-12-19 23:45
请问楼主,该程序在showmodel模块时,有没有出现,能出图,但是显示出现错误如下:
错误使用 cell2mat (lin ...

在viewmodel中注释掉出错代码

hsl13 发表于 2021-11-25 20:47:56
lovelysuzy 发表于 2019-11-8 12:17
楼主脚本里不是已经有Y了么,你就X.Y=Y,把X放到那个工具箱里去运行就好了

能详细说下吗:$
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表