首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MATLAB数值数组的结果导入新的MATLAB脚本

将MATLAB数值数组的结果导入新的MATLAB脚本
EN

Stack Overflow用户
提问于 2018-03-06 02:07:47
回答 2查看 47关注 0票数 0

假设我有一段返回双精度数组的代码。运行时,在命令窗口返回的结果如下所示:

代码语言:javascript
复制
mpc.gen= 

       1 100 344 34 5
       2 433 223 45 2 
       3 333 432 12 3
       4 213 233 12 3

我想要做的是创建一个包含这个数组的MATLAB脚本。换句话说,在这个新的MATLAB脚本中,我将拥有如下数组,构造如下:

代码语言:javascript
复制
mpc.gen= [ 1 100 344 34 5 ;
           2 433 223 45 2 ;
           3 333 432 12 3 ;
           4 213 233 12 3 ;
         ] ;

只需调用函数即可将变量保存在新脚本中,但这并不是我所需要的,因为我需要在一个名为MATPOWER的特殊power工具上使用此脚本进行模拟。该数组需要采用新脚本中所示的形式。

实际数组的大小要大得多,但为了简单起见,我在这里使用它。有没有什么方法可以自动完成这项工作,而不是手动将数据从命令窗口逐个传递到新脚本?任何帮助都将不胜感激。提前感谢您的宝贵时间!

EN

回答 2

Stack Overflow用户

发布于 2018-03-06 04:52:37

您想要使用的是mat2str。它将矩阵转换为字符串表示形式,当计算该字符串表示形式时,会生成相同的矩阵。

例如:

代码语言:javascript
复制
>> result = [1 100 344 34 5;
             2 433 223 45 2;
             3 333 432 12 3;
             4 213 233 12 3];
>> mat2str(result)
ans =
   [1 100 344 34 5;2 433 223 45 2;3 333 432 12 3;4 213 233 12 3]

您可以将此代码写入文件,如下所示:

代码语言:javascript
复制
f = fopen('test_script.m', 'w');
fprintf(f,'mpc.gen = %s\n', mat2str(result));
fclose(f);

格式化与您的示例不完全相同,但是如果该工具能够正确地进行MATLAB解析,那么应该不会有问题。

票数 1
EN

Stack Overflow用户

发布于 2018-03-06 02:20:42

是否有意将mpc定义为结构?(名称中使用了点。)在下面,我使用下划线代替,但如果它是有意的,它肯定可以被采用。

这就是函数的用途。因此,您应该创建一个新函数,而不是编写脚本。如果我做你想做的事情,我会有2个函数和1个脚本。而脚本看起来像这样

代码语言:javascript
复制
mpc_bus = function1;
function2(mpc_bus);

其中function1是返回mpc.bus的代码,function2是要使用mpc.gen的代码,顶部如下所示

代码语言:javascript
复制
function [] = function2(mpc_gen)

如果您出于某种原因不喜欢函数,可以使用save(*filename*.mat)使第一个代码保存变量,然后使用dat=load(*filename*.mat);mpc_gen = dat.mpc_bus;在脚本中重新加载该文件

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

https://stackoverflow.com/questions/49116820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档