查看: 1238|回复: 6|关注: 0

[已解决] 问题:未定义函数或变量 'double'。

[复制链接]

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
本帖最后由 hanmeiweixue 于 2018-11-27 11:10 编辑
  1. 这是主程序
  2. % Signal.
  3. x=randn(100,8);

  4. n = length(x);        % Signal length.

  5. % Observed sgnal = part1 + part2
  6. y = x;

  7. % Representation dictionary (here local DCT + UDWT + Dirac).
  8. qmf=MakeONFilter('Symmlet',6);
  9. dicts = MakeList('LDCT','UDWT');
  10. pars1 = MakeList(32,2);
  11. pars2 = MakeList(0.5,qmf);
  12. pars3 = MakeList(0,5);

  13. % No inpainting => mask of ones or empty mask.
  14. mask = [];


  15. %call the MCA;
  16. itermax = 100;
  17. tvregparam         = 0;
  18. tvcomponent        = 0;
  19. expdecrease        = 1;
  20. lambdastop= 4;
  21. display        = 1;
  22. [parts,options]=MCA_Bcr(y,dicts,pars1,pars2,pars3,itermax,tvregparam,tvcomponent,expdecrease,lambdastop,mask,[],display);
  23. options.inputdata = 'Input signal: EEG + fMRI medical signal';
  24. options;
  25. [ST,I] = dbstack;
  26. name=eval(['which(''' ST(1).name ''')']);
  27. eval(sprintf('save %s options -V6',[name(1:end-2) 'metadata']));

  28. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  29. figure;
  30. set(gcf,'Name','MCA 1D EEG-fMRI signal','NumberTitle','off');
  31. subplot(4,1,1);
  32. plot(y);axis tight
  33. xlabel('Time');
  34. title(sprintf('(a) \n EEG-fMRI signal'));

  35. subplot(4,1,2);
  36. plot(sum(parts,2));axis tight
  37. xlabel('Time')
  38. title(sprintf('(b) \n Denoised'));

  39. subplot(4,1,3);
  40. plot(parts(:,1));axis tight;
  41. xlabel('Time');
  42. title(sprintf('(c) \n MCA MRI magnetic field induced component'));

  43. subplot(4,1,4);
  44. plot(parts(:,2));axis tight;
  45. xlabel('Time');
  46. title(sprintf('(d) \n MCA EEG MRI-free component'));
复制代码
  1. 这是出现问题的程序:
  2. 未定义函数或变量 'double'。
  3. 出错 num2str (line 69)
  4.         xmax = double(max(abs(widthCopy(:))));

  5. 出错 MCA_Bcr (line 82)
  6.         for nb=1:numberofdicts, str = [str num2str(NthList(pars1,nb)) ' : ']; end

  7. 出错 figMCAEEG (line 27)
  8. [parts,options]=MCA_Bcr(y,dicts,pars1,pars2,pars3,itermax,tvregparam,tvcomponent,expdecrease,lambdastop,mask,[],display);
复制代码
子程序和数据放在了附件中,恳请您的指导!

子程序.zip

61.04 KB, 下载次数: 2

论坛优秀回答者

专家

2811 麦片

财富积分


20003000


4

主题

5221

帖子

613

最佳答案
  • 关注者: 871
发表于 2018-11-24 23:18:25 | 显示全部楼层 |此回复为最佳答案
1.请从置顶中学习如何正确粘代码
2.从报错信息看,就是字面意思,应该是double矩阵的类型,但你使用了变量类型cell

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-11-25 20:14:52 | 显示全部楼层

问题:未定义函数或变量 'double'。

本帖最后由 hanmeiweixue 于 2018-11-27 11:12 编辑
  1. <div class="blockcode"><blockquote>这是主程序
  2. % Signal.
  3. x=load('C:\Users\Administrator\Desktop\zhayan.txt');   

  4. n = length(x);        % Signal length.

  5. % Observed sgnal = part1 + part2
  6. y = x;

  7. % Representation dictionary (here local DCT + UDWT + Dirac).
  8. qmf=MakeONFilter('Symmlet',6);
  9. dicts = MakeList('LDCT','UDWT');
  10. pars1 = MakeList(32,2);
  11. pars2 = MakeList(0.5,qmf);
  12. pars3 = MakeList(0,5);

  13. % No inpainting => mask of ones or empty mask.
  14. mask = [];


  15. %call the MCA;
  16. itermax = 100;
  17. tvregparam         = 0;
  18. tvcomponent        = 0;
  19. expdecrease        = 1;
  20. lambdastop= 4;
  21. display        = 1;
  22. [parts,options]=MCA_Bcr(y,dicts,pars1,pars2,pars3,itermax,tvregparam,tvcomponent,expdecrease,lambdastop,mask,[],display);
  23. options.inputdata = 'Input signal: EEG + fMRI medical signal';
  24. options;
  25. [ST,I] = dbstack;
  26. name=eval(['which(''' ST(1).name ''')']);
  27. eval(sprintf('save %s options -V6',[name(1:end-2) 'metadata']));

  28. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  29. figure;
  30. set(gcf,'Name','MCA 1D EEG-fMRI signal','NumberTitle','off');
  31. subplot(4,1,1);
  32. plot(y);axis tight
  33. xlabel('Time');
  34. title(sprintf('(a) \n EEG-fMRI signal'));

  35. subplot(4,1,2);
  36. plot(sum(parts,2));axis tight
  37. xlabel('Time')
  38. title(sprintf('(b) \n Denoised'));

  39. subplot(4,1,3);
  40. plot(parts(:,1));axis tight;
  41. xlabel('Time');
  42. title(sprintf('(c) \n MCA MRI magnetic field induced component'));

  43. subplot(4,1,4);
  44. plot(parts(:,2));axis tight;
  45. xlabel('Time');
  46. title(sprintf('(d) \n MCA EEG MRI-free component'));
复制代码


  1. 未定义函数或变量 'double'。

  2. 出错 num2str (line 69)
  3.         xmax = double(max(abs(widthCopy(:))));

  4. 出错 MCA_Bcr (line 82)
  5.         for nb=1:numberofdicts, str = [str num2str(NthList(pars1,nb)) ' : ']; end

  6. 出错 figMCAEEG (line 27)
  7. [parts,options]=MCA_Bcr(y,dicts,pars1,pars2,pars3,itermax,tvregparam,tvcomponent,expdecrease,lambdastop,mask,[],display);
复制代码

子程序.zip

61.04 KB, 下载次数: 0

这是子程序

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-11-25 22:13:18 | 显示全部楼层
本帖最后由 hanmeiweixue 于 2018-11-26 10:27 编辑
halleyhit 发表于 2018-11-24 23:18
1.请从置顶中学习如何正确粘代码
2.从报错信息看,就是字面意思,应该是double矩阵的类型,但你使用了变量 ...

大神,我已把问题和排版重新更新,麻烦您有空的时候指点一下,不胜感激!!!

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-11-26 09:43:26 | 显示全部楼层
本帖最后由 hanmeiweixue 于 2018-11-26 10:28 编辑

代码粘贴已搞定,抱歉因为我的无知发这么多没用的帖子。

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-11-26 09:45:28 | 显示全部楼层
本帖最后由 hanmeiweixue 于 2018-11-26 10:28 编辑
halleyhit 发表于 2018-11-24 23:18
1.请从置顶中学习如何正确粘代码
2.从报错信息看,就是字面意思,应该是double矩阵的类型,但你使用了变量 ...

大神,代码粘贴已更新,希望在您有空的时候指点一下,不胜感激!!!!

入门

52 麦片

财富积分


50500


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-11-26 13:39:25 | 显示全部楼层
halleyhit 发表于 2018-11-24 23:18
1.请从置顶中学习如何正确粘代码
2.从报错信息看,就是字面意思,应该是double矩阵的类型,但你使用了变量 ...

那到底哪部分出了问题呢,应该怎么更改呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表