首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Octave/Matlab中传递".mat“文件作为参数

如何在Octave/Matlab中传递".mat“文件作为参数
EN

Stack Overflow用户
提问于 2014-11-30 07:58:57
回答 1查看 1.5K关注 0票数 1

我有许多.mat文件。我编写了一个简短的脚本,在这里我使用file1.mat并分析数据。这个过程的下一步就是对file2.mat做同样的事情。这样做的一种方法可以是简单地复制我以前的代码并将所有的"file1.mat“替换为"file2.mat”,然后对3,4进行同样的操作。不过,我觉得必须有一个更优雅的解决办法。最好的情况是,如果我可以编写一个函数,以文件名(最好不是整个路径)作为参数。这个是可能的吗?

我已经浏览了一下网络,最近的是"feval“函数,如果我有.m文件,它可以很好地工作,但是与.mat文件完全没有关系。

有办法将.mat文件传递给matlab函数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-30 08:28:33

假设您有以下脚本,它只是加载一些.mat文件并处理两个变量-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load('C:\data\input1.mat'); %// loads x, y into the workspace
z = x + y;
save('C:\data\output1.mat', 'z');

你也想要处理input2.matinput3.mat等等。最好的方法是编写一个函数,将所有这些工作打包到一个整洁的块中-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function processData(fnameIn, fnameOut)
    pathIn = fullfile('C:\data', fnameIn);
    pathOut = fullfile('C:\data', fnameOut);
    load(pathIn); %// loads x, y into the workspace
    z = x + y;
    save(pathOut, 'z');
end

现在你可以这样称呼它了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
processData('input1.mat', 'output1.mat')
processData('input2.mat', 'output2.mat')

等等,甚至更好

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
inputNames = {'input1.mat', 'input2.mat' };
outputNames = {'output1.mat', 'output2.mat'};

for i = 1:length(inputNames)
    processData(inputNames{i}, outputNames{i});
end

或者,如果您的文件名恰好是结构化的,则只需

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i = 1:2
    infile = sprintf('input%d.mat', i);
    outfile = sprintf('output%d.mat', i);
    processData(infile, outfile);
end

另一种可能的解决方案是编写函数,这样它就不会加载或保存任何文件,而是接收一些数据作为输入,并将其作为输出返回。这更灵活,因为现在您可以控制访问数据的方式(例如,在处理任何数据之前,您可能希望将其全部加载到工作区-您现在可以这样做,而在数据加载、处理和保存都绑定在一个函数之前)。processData函数将如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function dataOut = processData(dataIn)
    x = dataIn.x;
    y = dataIn.y;
    dataOut.z = x + y;
end

如果你想要加载文件,然后一次处理一个文件,你就这样使用它,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i = 1:length(inputNames)
    dataIn = load(fullfile('C:\data', inputNames{i}));
    dataOut = processData(dataIn);
    save(fullfile('C:\data', outputNames{i}), '-struct', 'dataOut');
end

或者像这样,如果你想做所有的装载,然后所有的处理,然后所有的节省-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i = 1:length(inputNames)
    dataIn(i) = load(fullfile('C:\data', inputNames{i}));
end
for i = 1:length(inputNames)
    dataOut(i) = processData(dataIn);
end
for i = 1:length(inputNames)
    tmp = dataOut(i);
    save(fullfile('C:\data', outputNames{i}), '-struct', 'tmp');
end

以这种方式编写processData的一个最大优点是,如果您想测试或调试它,那么它就会突然变得容易得多。如果文件加载/保存在函数中,并且要对其进行测试,则必须

  1. 创建测试数据
  2. 将测试数据保存到文件中
  3. 以文件名作为输入运行processData
  4. 加载包含输出数据的文件
  5. 检查输出数据是否正确
  6. 记住要清理包含测试数据的文件,无论您把它们放在哪里。

如果将数据加载/保存与处理分开,则测试过程将变为

  1. 创建测试数据
  2. 以测试数据作为输入运行processData
  3. 检查输出是否正确

要简单得多,而且您不必在任何时候乱搞保存/加载文件,也不必在硬盘上创建任何凌乱的文件。如果您需要进行任何调试,这个过程也要容易得多--只需创建一个函数将继续失败的示例,然后逐步遍历代码,查看其实际失败的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27215113

复制
相关文章
[喵咪PHP]页面显示空白问题
#[喵咪PHP]页面显示空白问题# ##前言## 哈喽!大家好啊,喵咪PHP第一次和大家见面了,熟悉的朋友呢也之道喵咪我也开了喵咪Liunx和喵咪Golang这两个坑目的呢是吧平常遇到的一些问题或者是
喵了个咪233
2018/03/02
2.2K0
[喵咪PHP]页面显示空白问题
AngularJS系列之select下拉选择第一个选项为空白的解决办法
今天给大家介绍一下AngularJS系列之select下拉选择第一个选项为空白的解决办法。 相信大家也经常遇到这种情况吧:在使用AngularJS中的select组件开发的时候,莫名其妙的第一个选项就
林老师带你学编程
2018/01/03
3.2K0
centos打开windows的ftp 无法显示内容 显示空白内容
centos下gnome打开windows FTP显示空白,无内容,windows下 打开正常。
全栈程序员站长
2022/07/05
6.3K0
centos打开windows的ftp 无法显示内容 显示空白内容
7个有用的Pandas显示选项
andas是一个在数据科学中常用的功能强大的Python库。它可以从各种来源加载和操作数据集。当使用Pandas时,默认选项就已经适合大多数人了。但是在某些情况下,我们可能希望更改所显示内容的格式。所以就需要使用Pandas的一些定制功能来帮助我们自定义内容的显示方式。
deephub
2023/02/01
1.3K0
显示器 设置选项 解析
明亮度 Gama:显示器的输出图像对输入信号的失真程度。 DCR:Dynamic Contrast Ratio,动态对比率。自动判断画面整体亮度,对画面各部分进行亮度调整,使细节更清晰,层次更分明。 颜色设置 色温 暖色 正常 冷色 sRGB:RGB(色彩空间)的一种标准。 DCB模式 OSD设置 其他 DDC/CI:Display Data Channel Command Interface,基于DDC/CI协议,用户可以通过鼠标和人性化的软件界面来完成显示器的各项设置和色彩调节,
JNingWei
2018/09/28
1.6K0
图片的选择和显示
这个就是图片的选择框,在我们点击这个框的时候会给我们弹出一个文件选择,当我们选中图片的时候就把图片显示在这个框上面,如果选中的不是一个图片这个时候就需要用到一个正则表达式来进行一个判断。
PHY_68
2020/09/16
1K0
图片的选择和显示
Windows 预览体验计划 空白 不显示内容
以管理员身份启动 PowerShell,可以直接在搜索框中搜索,右键选择“以管理员身份运行”
季春二九
2023/03/22
9090
Windows 预览体验计划 空白 不显示内容
部分手机访问https显示空白页
事情是这样的。。。。。此处省略1000字!
思梦php
2018/03/01
1.4K0
部分手机访问https显示空白页
部分手机访问https显示空白页
突然客服告诉我,众享通赢的消费平台怎么登陆不进去了???而且还一直显示空白页???,程序员你做了什么了???额,,然后我表示一脸懵逼....
思梦php
2018/03/16
3.1K10
部分手机访问https显示空白页
OpenCV基础03--创建空白图像和显示
以下程序也与以前的程序非常相似。唯一的区别是该程序创建一个空白图像,而不是从文件加载现有图像。
软件架构师Michael
2023/09/11
5280
Confluence 6 修改导航显示选项 原
https://www.cwiki.us/display/CONF6ZH/Configure+the+Sidebar
HoneyMoose
2019/01/30
1.4K0
Confluence 6 修改导航显示选项
                                                                            原
uniapp组件引入canvas显示不出来空白
2023/10/18
9820
uniapp组件引入canvas显示不出来空白
dedecms后台左侧菜单空白不显示怎么处理
  有一位网友反映说迁移服务器后,进入dedecms后台发现左边菜单一片空白,显示不出来,遇到这种现象一般是空间的权限问题,没有写入权限,修改一下空间的目录权限就可以了,   1.首先进行判断是程序问题还是权限问题。通常这种都属于权限问题。   2.使用FTP登陆网站。找到DATA/tplcache 文件夹。将里面的数据备份。   3.在文件夹上面右键。并设置其属性为777。然后将里面的文件除了index.html文件外全部删除。   4.刷新后台。问题解决,dede后台菜单正常显示!   有些朋友
ytkah
2018/03/06
6.5K0
localStorage 的相关运用
localStorage 是浏览器自带的一个属性,只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面被关闭时,存储在 sessionStorage 的数据会被清除。
子舒
2023/08/23
2730
localStorage 的相关运用
部分手机访问https显示空白页
突然客服告诉我,众享通赢的消费平台怎么登陆不进去了???而且还一直显示空白页???,程序员你做了什么了???额,,然后我表示一脸懵逼....
思梦php
2018/02/10
1.5K0
部分手机访问https显示空白页
选择篇(017)-哪个选项是不正确的?
在JavaScript中,所有对象键都是字符串(除了Symbol)。尽管有时我们可能不会给定字符串类型,但它们总是被转换为字符串。
齐丶先丶森
2022/05/12
1.3K0
Labview选项卡之实现被选择选项卡工作
有些时候,我们做界面,需要好多个界面切换。如果是同一个 VI 里界面切换,一般都是选项卡了。切换不同选项卡就切换界面了。
Gnep@97
2023/08/16
7681
Labview选项卡之实现被选择选项卡工作
Bootstrap 初级错误导致显示空白页
在官网下载bootstrap代码,引入js、css、font文件,然而项目启动之后整个页面只是空白,怎么刷新重新部署都无法显示内容。
程序新视界
2022/05/06
7350
echarts插件-从后台请求的数据在页面显示空白的问题
最近的项目里面关于统计图方面的问题,有涉及到很多,也在博客里面更新了自己所遇到的问题,开发过程中会遇到很多问题,解决技术问题的方法也有千千万
王小婷
2018/08/22
1.2K0
echarts插件-从后台请求的数据在页面显示空白的问题
点击加载更多

相似问题

LocalStorage选择已禁用

12

Jquery链式选择框,如何禁用空白选项

16

如何在选择AngularJS中禁用空白选项?

10

ng-带localStorage选项的显示

10

多选择下拉列表显示选项为空白?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文