标签: matlab-load

MATLAB - 加载文件,其文件名存储在字符串中

我正在使用MATLAB处理文件中的数据.我正在编写一个程序,它从用户那里获取输入,然后将特定文件定位在绘制它们的目录中.文件命名为:

{名} U {}率

{name}是表示计算机名称的字符串.{rate}是一个数字.这是我的代码:

%# get user to input name and rate
NET_NAME = input('Enter the NET_NAME of the files: ', 's');
rate = input('Enter the rate of the files: ');

U = strcat(NET_NAME, 'U', rate)
load U;

Ux = U(:,1);
Uy = U(:,2);
Run Code Online (Sandbox Code Playgroud)

目前有两个问题:

  1. 当我strcat说"你好","你好",费率是50时,你会存储'helloU2' - 我怎样才能strcat正确追加{rate}?

  2. 加载线 - 如何取消引用U,以便加载尝试加载存储在U中的字符串?

非常感谢!

string matlab-load

9
推荐指数
1
解决办法
2万
查看次数

如何在MATLAB中将变量移入和移出类似于LOAD和SAVE的结构?

是否有一种快速的方法(即一行)将一组变量转储到一个结构中,使用变量名称作为结构字段?"加载"功能基本上可以做到这一点,但保存和加载到临时文件似乎很难看.

例如:

clear
a = 'adsf'
b = rand(10);

x = var2struct(a,b)

x.a
x.b
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

x = var2struct(['a';'b'])
Run Code Online (Sandbox Code Playgroud)

另外,反过来(即将字段值作为字段命名的变量转储到当前作用域)?

clear
x.a='asdf'
x.b=rand(10);
dumpstruct(x)
a
b 
Run Code Online (Sandbox Code Playgroud)

另外,这是一个相关的新闻组主题.

variables matlab structure save matlab-load

9
推荐指数
1
解决办法
5581
查看次数

Matlab:加载一个.mat文件,为什么它是一个结构?我可以将存储的变量加载到内存中吗?

相关代码:

function result = loadStructFromFile(fileName, environmentName) 
    result = load(fileName, environmentName);


bigMatrix = loadStructFromFile('values.mat','bigMatrix'); 
Run Code Online (Sandbox Code Playgroud)

但是当我查看工作区时,它会将'bigMatrix'显示为1x1结构.但是,当我单击结构时,它是实际数据(在本例中为aa 998x294矩阵).

matlab matlab-load

8
推荐指数
1
解决办法
3万
查看次数

Matlab中的数据加载时间长

我有四个变量,每个变量保存在365个mat文件中(大小:8 x 92 x 240).我尝试在for-loop day = 1:365中将这些加载到我的函数中,每天一个变量文件.但是,这两个第一个变量总是需要很长时间才能加载.我的加载代码如下所示:

load([eraFolder sprintf('Y%dD%d-tempSD.mat',year,day)], 'tempSD'); % took 5420 s to load

load([eraFolder sprintf('Y%dD%d-tempDewSD.mat',year,day)], 'tempDewSD') 

load([eraFolder sprintf('Y%dD%d-eEraSD.mat',year,day)], 'eEraSD'); % took 6 seconds to load

load([eraFolder sprintf('Y%dD%d-pEraSD.mat',year,day)], 'pEraSD'); 
Run Code Online (Sandbox Code Playgroud)

使用Profiler,我可以看到前两个变量在365次调用中加载5420秒,而最后两个变量分别在365次调用中加载6和4秒.当我交换加载变量的顺序时,例如eEraSD之前tempSD,它仍然是前两个加载需要更多时间.

tic toc用于跟踪加载所花费的时间时,加载第一个或第二个变量的时间似乎随着调用次数呈指数增长(最后一次调用需要50秒才能运行).对于第三个和第四个变量,加载时间保持在每个文件大约0.02-0.04秒,或多或少独立于我已经去过的for循环的距离.见下图.

在此输入图像描述 在此输入图像描述

当使用importdata而不是'load'时,第一行需要大约8000秒才能加载365次(加载量呈指数增长,如第二幅中的T所示).然后其他线路需要大约10秒钟才能加载365次.

我不明白为什么它看起来这样,我可以做些什么来减少加载时间.非常感谢任何可能的解决方案的想法.

matlab matlab-load

6
推荐指数
1
解决办法
946
查看次数

R:帮助将特定的.mat文件读入R中

所以我一直在尝试将这个特殊的.mat文件读入R.我不太了解matlab,但我知道R.matlab包只能将未压缩的数据读入R,并将其保存为未压缩我需要通过使用在matlab中保存它 save new.mat -v6.

好吧,所以我这样做了,但是当我readMat("new.mat")在R中使用时,它只是被卡住了永远.我也尝试过使用包hdf5:

> hdf5load("new.mat", load=FALSE)->g
Error in hdf5load("new.mat", load = FALSE) : 
  can't handle hdf type 201331051
Run Code Online (Sandbox Code Playgroud)

我不确定这个问题是什么,但如果有人想要弄清楚这个问题,那么该文件位于http://dibernardo.tigem.it/MANTRA/MANTRA_online/Matlab_Code%26Data.html ,称为库存. mat(第一个文件).

谢谢你的帮助!

matlab r mat-file matlab-load

5
推荐指数
1
解决办法
8170
查看次数

MATLAB:访问加载的MAT文件非常慢

我目前正在开发一个涉及保存/加载相当大的MAT文件(大约150 MB)的项目,我意识到访问加载的单元格数比在脚本或函数内创建的等效版本要慢得多.

我创建了这个例子来模拟我的代码并显示差异:

clear; clc;

disp('Test for computing with loading');

if exist('data.mat', 'file')
    delete('data.mat');
end

n_tests = 10000;
data = {};
for i=1:n_tests
    data{end+1} = rand(1, 4096);
end

% disp('Saving data');
% save('data.mat', 'data');
% clear('data');
% 
% disp('Loading data');
% load('data.mat', '-mat');

for i=1:n_tests
    tic;
    for j=1:n_tests
        d = sum((data{i} - data{j}) .^ 2);
    end
    time = toc;
    disp(['#' num2str(i) ' computed in ' num2str(time) ' s']);
end
Run Code Online (Sandbox Code Playgroud)

在此代码中,不保存或加载MAT文件.i上一次迭代的平均时间是0.75秒.当我取消注释保存/加载文件的行时,i上一次迭代的计算大约需要6.2秒(不考虑保存/加载时间).相差8倍!

我使用的是带有Windows 7 64位的64位MATLAB 7.12.0(R2011a),并且使用版本v7.3保存了MAT文件.

它可以与MAT文件的压缩相关吗?还是缓存变量?有没有办法防止/避免这种情况?

performance matlab-load

3
推荐指数
1
解决办法
2912
查看次数

将struct字段加载到变量中(MATLAB)

我有一个结构存储在我的硬盘上.我需要将其中一个Field加载到局部变量中.一个简单的负载得到了

% 'PRICES' is the stored struct.  1st fieldname is '.Raw'.  
% Only '.Raw' needs to be loaded

var = load( fullfile(path, 'PRICES.Mat') ) % Wrong as var becomes a struct containing a struct.
% DESIRED value: var = PRICES.Raw ;
Run Code Online (Sandbox Code Playgroud)

是否可以一步完成?我可以覆盖var并完成这个,但有没有直接的方法呢?谢谢.

variables matlab struct matlab-load

2
推荐指数
1
解决办法
1万
查看次数

在MATLAB中加载多个.mat文件

我有110个名为time1.mat,time2.mat ...,time110.mat的文件.我想将这些矩阵加载到MATLAB工作区中.

我一直习惯load -'ASCII' matrix.mat在当前文件夹中加载ASCII矩阵文件.

所以我尝试了

for i=1:10 
    filename=strcat('time',int2str(i),'.mat');
    load -'ASCII' filename
end
Run Code Online (Sandbox Code Playgroud)

但我得到一个MATLAB错误

??? Error using ==> load
    Unable to read file filename: No such file or directory.
?
Run Code Online (Sandbox Code Playgroud)

当然字符串filename似乎由MATLAB正确评估为time1.mat.在第一次迭代中,它在负载线上崩溃.

有什么建议我应该怎么做?

matlab matlab-load

2
推荐指数
1
解决办法
2586
查看次数

加载包含字符串和数字的数据集

我正在尝试加载以下数据集:

阿富汗,5,1,648,16,10,2,0,3,5,1,1,0,1,1,1,0,绿色,0,0,0,0,1,0,0,1, 0,0,黑色,绿色

阿尔巴尼亚,3,1,29,3,6,6,0,0,3,1,0,0,1,0,1,0,红色,0,0,0,0,1,0,0, 0,1,0,红色,红色

阿尔及利亚,4,1,2388,20,8,2,2,0,3,1,1,0,0,1,0,0,绿色,0,0,0,0,1,1,0, 0,0,0,绿,白

...

问题是它包含整数和字符串.我找到了一些关于如何只取出整数的信息.但是还没有看到是否有任何方法可以获得所有数据.

我的问题是可能吗?

如果那是不可能的,那么有没有办法找到每一行的数字并扔掉其他所有而不必选择列?

我需要具体,因为我似乎不能一次使用str2num整行.

string matlab-load

1
推荐指数
1
解决办法
216
查看次数

如何在MATLAB中一步加载100个具有相似名称和/或字符串的文件?

我的目录中有100个ASCII文件,全部命名如下:

int_001.ASC
int_002.ASC
int_003.ASC
.
.
.
int_099.ASC
int_100.ASC

我必须使用importdata在MATLAB中导入它们,它应该如下工作:

A = importdata('int_001.ASC', ' ', 9)
x = A.data(:,1)
y = A.data(:,2)
Run Code Online (Sandbox Code Playgroud)

我的问题是:我怎么能避免写100次importdata?有没有办法只写第一个字符串,然后上传所有数据?

谢谢

matlab filenames ascii string-formatting matlab-load

1
推荐指数
1
解决办法
2866
查看次数