声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1151|回复: 7

[编程技巧] 读取多重档案并绘图

[复制链接]
发表于 2009-4-4 15:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
假如我将数据保存为 a.mat  b.mat  c.mat ……z.mat等等 很多 他们都是1列 但是行数不一样, 我现在要将他们都画出图 一个数据画个图
用个循环, 怎么实现? 比如
xx={'a'  'b' 'c'……'z'}
for i=1:26
    figure(i); plot(xx{i})
end
但是实现不了, 大概就是这个意思
希望大家能帮我解决下, 谢谢了

[ 本帖最后由 ChaChing 于 2009-4-4 22:49 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-4-4 22:02 | 显示全部楼层
没试过自个儿试试
xx='abcdefghijklmnopqrstuvwxyz' ;
for i=1:26
    aa=load([xx(i),'.mat' ]); figure(i); plot(aa)
end

评分

1

查看全部评分

 楼主| 发表于 2009-4-5 08:59 | 显示全部楼层

回复 沙发 ChaChing 的帖子

感谢你了
但是我的mat文件名都是4个字母的
而且没有规律
麻烦您再帮我解决下
非常非常感谢了
发表于 2009-4-5 09:16 | 显示全部楼层
help dir
and 搜一下

[ 本帖最后由 ChaChing 于 2009-4-5 09:18 编辑 ]
发表于 2009-4-5 09:22 | 显示全部楼层


亦可以如下
for i=1:26
    aa=load([char(i+96),'.mat' ]); figure(i); plot(aa)
end
 楼主| 发表于 2009-4-5 09:42 | 显示全部楼层

回复 沙发 ChaChing 的帖子

这是我做的 因为mat名称都是5个字符
=但是有点错误
x='bzxxnh049nh033n'
  zdm(1,:)=x(1:5)
  for i=2:3, zdm(i,:)=x((i-1)*5+1:(i-1)*5+5); end
  for j=1:3   
      x=load([zdm(j,:),'.mat']); figure(j); plot(x)
  end

错误
zdm =

bzxxn
h049n
h033n


x =

    bzxxn: [207x1 double]

??? Error using ==> plot
Not enough input arguments.

Error in ==> shiyan at 18
      plot(x)

这怎么解决

[ 本帖最后由 ChaChing 于 2009-4-5 20:21 编辑 ]
发表于 2009-4-5 16:26 | 显示全部楼层
抱歉, 回乡扫墓, 赶车回太急了, 并无检查清楚! 2/4F回覆的都有些问题!
aa=load([xx(i),'.mat' ]); 如此aa是为一struct array, 是不能直接plot的

至於LZ要如何处理, 应视LZ的档案如何产生而定, 详见下帖!
再次抱歉, 误导了LZ

[ 本帖最后由 ChaChing 于 2009-4-5 17:20 编辑 ]
发表于 2009-4-5 17:13 | 显示全部楼层
首先应该确定LZ的数据是否为ascii, 即LZ的数据原来怎样产生的?
以一例子说明, aa=[1:10]'
1.若LZ的资料存为ascii, 即LZ是以save a.mat -ascii aa存储的, 则档案中并无aa的资讯. 若想以load zzz.mat读入是会出错的, 因其并非真正的binary档, 需以load zzz.mat -ascii读入, 但此时变数变为zzz. 若想控制变数名称, 就需以bb=load('zzz.mat','-ascii'), 此时变数名称就会变为bb了.
LZ的例子就需
for i=1:26, bb=load([char(i+96),'.mat'],'-ascii'); figure; plot(bb); end

for i=1:26, load([char(i+96),'.mat'],'-ascii'); figure; eval(['plot(',char(i+96),')']) end

2.若LZ的资料存为binary档, 即LZ是以save a.mat aa存储的, 则此时档案中即有aa的资讯. 需以load zzz.mat读入, 且变数名称aa是无法变更的.
LZ的例子(假设LZ都是以aa变数存储)就需
for i=1:26, load([char(i+96),'.mat']); figure; plot(aa); end

说了2266, 希望LZ能够了解!

[ 本帖最后由 ChaChing 于 2009-4-5 17:17 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-5 17:19 , Processed in 0.073245 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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