查看: 219|回复: 0|关注: 0

[未答复] matlab中toimage出现错误

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2020-5-31 10:50:28 | 显示全部楼层 |阅读模式
  1. function [im,tt] = toimage(A,f,t,splx,sply)

  2. % [im,tt] = TOIMAGE(A,f,t,splx,sply) transforms a spectrum made
  3. % of 1D functions (e.g., output of "spectreh") in an 2D image
  4. %
  5. % inputs :   - A    : amplitudes of modes (1 mode per row of A)
  6. %            - f    : instantaneous frequencies
  7. %            - t    : time instants
  8. %            - splx : number of columns of the output im (time resolution).
  9. %                     If different from length(t), works only for uniform
  10. %                     sampling.
  11. %            - sply : number of rows of the output im (frequency resolution).
  12. % outputs :  - im   : 2D image of the spectrum
  13. %            - tt   : time instants in the image
  14. %
  15. % utilisation : [im,tt] = toimage(A,f);[im,tt] = toimage(A,f,t);[im,tt] = toimage(A,f,sply);
  16. %              [im,tt] = toimage(A,f,splx,sply);[im,tt] = toimage(A,f,t,splx,sply);

  17. DEFSPL = 400;

  18. if nargin < 3
  19.   t = 1:size(A,2);
  20.   sply = DEFSPL;
  21.   splx = length(t);
  22. else
  23.     if length(t) == 1
  24.         tp = t;
  25.         t = 1:size(A,2);
  26.         if nargin < 4
  27.             sply = tp;
  28.             splx = length(t);
  29.         else
  30.             if nargin > 4
  31.                 error('too many arguments')
  32.             end
  33.             sply = splx;
  34.             splx = tp;
  35.         end
  36.     else
  37.         lt = length(t);
  38.         if nargin < 5
  39.           sply = splx;
  40.           splx = lt;
  41.         end

  42.         if nargin < 4
  43.           sply = DEFSPL;
  44.           splx = lt;
  45.         end
  46.         
  47.         if nargin > 5
  48.             error('too many arguments')
  49.         end
  50.     end
  51. end
  52. end

  53.    


  54. <font color="red">1t</font>=length(t);

  55. im=[];
  56. im(splx,sply) = 0;


  57. for i=1:size(f,1)
  58.   for j = 1:lt
  59.     ff=floor(f(i,j)*2*(sply-1))+1;
  60.     if ff <= sply % in case f(i,j) > 0.5
  61.       im(floor(j*(splx-1)/lt)+1,ff)=im(floor(j*(splx-1)/lt)+1,ff)+A(i,j);
  62.     end
  63.   end  
  64. end

  65. for  i = 1:splx
  66.   tt(i) = mean(t(floor((i-1)*lt/(splx))+1:floor(i*lt/(splx))));
  67. end

  68. im=fliplr(im)';
复制代码
错误: 文件:toimage.m 行:61 列:1
该语句不在任何函数内。
(它在终止函数 "toimage" 定义的 END 之后。)

代码标红处存在问题,请问怎么修改呢?看之前的帖子说删除前面的end,这个方法没有解决问题。
回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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