查看: 205|回复: 2|关注: 0

[已解决] 怎样使得键盘输入后保存当前循环中数组数据,否则循环继续进行

[复制链接]

新手

13 麦片

财富积分


050


6

主题

10

帖子

0

最佳答案
在用循环显示数组数据时,想要实现键盘输入n时将当前的数据保存为文件,没有输入时继续进行循环不保存

用了下面的代码,结果输入n之后所有的数据都保存下来了,比如我在显示第55帧的时候输入n,想要实现的是保存RData(:,:,55),但现在保存了RData(:,:,55)~RData(:,:,100),请问应该怎么改呢?

  1. RData=randn(64,4096,100);
  2. for i=1:100
  3.     Data=RData(:,:,i);
  4.     figure(1)
  5.     imagesc(Data);colormap(gray);pause(0.1);
  6.     if strcmpi(get(gcf,'CurrentCharacter'),'n')
  7.         save(num2str(i),'Data');
  8.     end
  9. end
复制代码


TIM图片20190911184226.png

新手

36 麦片

财富积分


050


1

主题

36

帖子

1

最佳答案
发表于 2019-9-11 20:56:26 | 显示全部楼层 |此回复为最佳答案
因为你输入n后,get(gcf,'CurrentCharacter')值就一直为"n",你可以假定输入了其他值来覆盖n值。
  1. RData=randn(64,4096,100);
  2. for i=1:100
  3.     Data=RData(:,:,i);
  4.     figure(1);
  5.     imagesc(Data);colormap(gray);pause(0.1);
  6.     if strcmpi(get(gcf,'CurrentCharacter'),'n')
  7.         save(num2str(i),'Data');
  8.     end
  9.     set(gcf,'CurrentCharacter','a');%假定输入了"a"
  10. end
复制代码

新手

13 麦片

财富积分


050


6

主题

10

帖子

0

最佳答案
 楼主| 发表于 2019-9-11 21:36:41 | 显示全部楼层
帕拉代斯 发表于 2019-9-11 20:56
因为你输入n后,get(gcf,'CurrentCharacter')值就一直为"n",你可以假定输入了其他值来覆盖n值。
...

哇~原来是这样,今天弄这个问题好久,十分感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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