matlab中mat文件的操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中mat文件的操作相关的知识,希望对你有一定的参考价值。
我有M个N行一列的mat文件,我想把它们整合成N行M列的mat文件,请问下应该如何操作?
是M个 mat文件呀,不是M行N列……
2,mat文件的读取可以直接利用load('文件名.mat')
3,在Curentfolder里面双击你要查看的mat文件结果就会在workspace显示,然后在workspace 里面双击某个变量就可以对其进行编辑。(workspace和Curentfolder可以这样打开单击菜单栏的Desktop--workspace,Desktop--Curentfolder)
4,利用save命令对你的mat文件进行保存,当然如果你是安3来修改的也就不用再使用save命令了。 参考技术B >> load C.mat
>> C
C =
-0.6515 -0.2727 -0.4354
-0.7534 -0.4567 -0.3212
-0.9264 -0.8173 -0.7823
-0.1735 -0.7373 -0.0972
-0.4765 -0.6773 -0.6574
>> D=C';
>> save D
>>本回答被提问者采纳
在 R 中使用 foreach 循环读取 MATLAB .mat 文件时出现问题
【中文标题】在 R 中使用 foreach 循环读取 MATLAB .mat 文件时出现问题【英文标题】:Problems reading MATLAB .mat files with a foreach loop in R 【发布时间】:2016-11-10 10:24:41 【问题描述】:我有一千多个 matlab 文件要读入 R。我使用 R.matlab 包来读取它们,我想并行操作。
但是,一旦我调用循环(我从所有 .mat 文件生成单个数据集)我得到一个错误:
中的错误:任务 1 失败 - “不可能遇到函数 "readMat""
(我翻译了“”之间的错误部分,因为我的R不是英文的)
没有 foreach 命令,一切都很好,但时间太长了。这是代码
library(R.matlab)
library(plyr)
library(foreach)
library(doParallel)
a = list.files()
data <- readMat(a[1])
for(j in 2:length(a))
data1 <- readMat(a[j])
if (is.null(data1)==FALSE)
data <- rbind.fill(data,data1)
print(j)
使用 foreach 命令我得到了上述错误。代码如下:
library(R.matlab)
library(plyr)
library(foreach)
library(doParallel)
cl<-makeCluster(8)
registerDoParallel(cl)
a = list.files()
data <- readMat(a[1])
foreach(j = 2:length(a)) %dopar%
data1 <- readMat(a[j])
if (is.null(data1)==FALSE)
data <- rbind.fill(data,data1)
print(j)
是不是说foreach和readMat不能一起用?
【问题讨论】:
您是否忘记关闭%dopar%
之前的第二组括号?
ops,一个错字……但它在代码中被关闭了。
【参考方案1】:
如果有人想知道,我忘了将R.matlab
导出到每个集群节点。只需在foreach
调用中添加.packages
参数
library(R.matlab)
library(plyr)
library(foreach)
library(doParallel)
cl<-makeCluster(8)
registerDoParallel(cl)
a <- list.files()
data <- readMat(a[1])
foreach(j = 2:length(a), .packages = c("plyr", "doParallel",
"R.matlab")) %dopar%
data1 <- readMat(a[j])
if (!is.null(data1))
data <- rbind.fill(data,data1)
【讨论】:
你能用这个print(j)
吗?当它在循环时?以上是关于matlab中mat文件的操作的主要内容,如果未能解决你的问题,请参考以下文章
在 R 中使用 foreach 循环读取 MATLAB .mat 文件时出现问题