MATLAB FDA plot_fit图标题中的错误案例/代表标记

时间:2015-09-11 08:39:34

标签: matlab plot

我正在使用Jim Ramsay's FDA package for MATLAB对我通过实验获得的数据进行功能分析。我正在为我的功能数据对象设置标签,生成它,并使用以下代码绘制它:

% Set up labels

fdnames = cell(1,3);
fdnames{1} = 'Time (ms)';
cnd = cell(1,2);
cnd{1} = 'Condition';
cnd{2} = ['C1'; 'C2'; 'C3'];
fdnames{2} = cnd;
fdnames{3} = 'Values';

% Generate functional data object from
% arguments (t), data (y), basis object (bss),
% default value for derivative order (4), lambda (0.1),
% and labels (fdnames)

fdObj = data2fd(t, y, bss, 4, 0.1, fdnames);

% Plot

plot_fit(y, t, fdObj);

这会产生3个图。所有这三个标签中都有'C1',而不是'C1','C2'和'C3',它们是我在功能对象中对案例/复制的标签。

enter image description here

我想绘制我的功能对象,并在图上显示正确的标签。欢迎来自经验丰富的MATLAB和FDA用户的任何帮助。

1 个答案:

答案 0 :(得分:0)

这是由于FDA包中的plot_fit功能存在错误。以下是该功能代码的一部分:

% ...
casenames = fdnames{2};
% ...
%  plot the results
if residual
  %  plot the residuals
  ylimit = [min(min(min(res))), max(max(max(res)))];
    for i = 1:nrep 
        for j = 1:nvar
            % ...
            if nrep > 1
                if iscell(casenames)
                    title(['\fontsize{12} ', casenames{2}(j,:), ...
                        '  RMS residual = ',num2str(sqrt(MSE(j,i)))])
                else
                    title(['\fontsize{12} Case ', num2str(i), ...
                        '  RMS residual = ',num2str(sqrt(MSE(j,i)))])
                end
            else
               % ...
            end
        end
        pause
   end
 else
  %  plot the data and fit
  % ...
    for i = 1:nrep 
        for j = 1:nvar
          % ...
            if nrep > 1
                if iscell(casenames)
                    title(['\fontsize{12} ', casenames{2}(j,:), ...
                        '  RMS residual = ',num2str(sqrt(MSE(j,i)))])
                else
                    title(['\fontsize{12} Case ', num2str(i), ...
                        '  RMS residual = ',num2str(sqrt(MSE(j,i)))])
                end
              % ...

这里,变量ij分别遍历案例/代表和变量,行

title(['\fontsize{12} ', casenames{2}(j,:), ...

使用j作为参数来选择将在标题中显示的案例/代表名称。更新包以用

替换此行
title(['\fontsize{12} ', casenames{2}(i,:), ...

可以解决问题。