MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   load大量数据的问题(新) (https://www.labfans.com/bbs/showthread.php?t=3970)

maizi816 2008-07-22 23:29

load大量数据的问题(新)
 
现在要load 一组数据ACDC1.mat, ACDC2.mat, ..... ACDC100.mat去计算
在每个mat数据文件里都有名为SpeedVehicle的Array editor数据

我的编程如下:
for d=1:100
z=['load ACDC' int2str(d) '.mat']
eval(z)
end

因为每个mat文件里的数据都叫SpeedVehicle,所以在workspace里下一个数据会自动取代上一个,最后的结果只有最后一个数据.怎么才能得到所有的SpeedVehicle 数据

这种情况该怎么解决啊?有人知道吗?谢谢

remnant 2008-07-23 08:53

load好一个后,通过赋值更改变量名字,再load下一个。

maizi816 2008-07-23 18:13

你的意思是我需要一个一个的load数据啦,但如果数据很多,手工输入太费时间了,怎么才能让程序自动运行完?

remnant 2008-07-23 19:32

不需要手工,我给你个例子。

for d = 1:100
z = [ 'load ACDC', int2str(d), '.mat'];
eval(z); % 此时, SpeedVehicle已经是直接可见的了
data( :, :, d ) = SpeedVehicle( :, : ); % 将SpeedVehicle存入3维矩阵
end
这个例子假设SpeedVehicle为2维矩阵,我将其存入一个3维矩阵里。
也可以利用其它数据类型,比如结构体,cell。根据SpeedVehicle的类型和你的使用习惯选定数据类型即可。

mathjiang 2008-07-23 21:32

楼上正解,又学到一招。thanks

maizi816 2008-07-24 07:34

2 个附件
我的SpeedVehicle数据是timeseries格式(如图)
如果想导入SpeedVehicle里的数据,需要:
data=z(d).SpeedVehicle
这样的格式该怎么写程序?谢谢!

remnant 2008-07-24 21:39

time series这个属于时间序列的我不了解。不过,可以肯定的是这种数据类型也是由一些
基本数据类型组合而成的。说个思路吧,你自己尝试一下。你可以先load一个mat
文件进来,然后,试一下struct,cell这两种能不能存储SpeedVehicle[ 可以用class( 'SpeedVehicle' ) 来看一下 ]。确定以后,
修改上面的程序,将刚才试验里确定的类型变成多维的就可以了。

maizi816 2008-07-28 19:14

我试了下,是char 数据类型


所有时间均为北京时间。现在的时间是 14:29

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.