【问题标题】:Matlab: Saving workspace variables as a .txt fileMatlab:将工作区变量保存为 .txt 文件
【发布时间】:2014-05-30 17:16:14
【问题描述】:

在工作区中获得以下cfit 变量。我无法从这些变量中提取任何数据,并且想知道是否缺少我可以为我执行此操作的代码。

A = 

     General model:
     fitresult(x) = y0+a*exp(-.5*((x-xa)/wa)^2)+b*exp(-.5*((x-xb)/wb)^2)+c*exp(-
                    .5*((x-xc)/wc)^2)+d*exp(-.5*((x-xd)/wd)^2)
     Coefficients (with 95% confidence bounds):
       a =        1693  (1089, 2297)
       b =        8768  (8145, 9392)
       c =        4480  (1942, 7017)
       d =        3841  (2625, 5057)
       wa =       39.36  (31.01, 47.7)
       wb =       16.67  (15.92, 17.41)
       wc =       13.05  (10.58, 15.51)
       wd =       21.34  (15.41, 27.28)
       xa =       99.23  (96.06, 102.4)
       xb =       103.5  (103.1, 103.9)
       xc =       273.5  (271.9, 275.2)
       xd =       298.2  (285.9, 310.5)
       y0 =        4158  (4049, 4266)

 B =



     General model:
     fitresult(x) = y0+a*exp(-.5*((x-xa)/wa)^2)+b*exp(-.5*((x-xb)/wb)^2)+c*exp(-
                    .5*((x-xc)/wc)^2)+d*exp(-.5*((x-xd)/wd)^2)
     Coefficients (with 95% confidence bounds):
       a =        1693  (1089, 2297)
       b =        8768  (8145, 9392)
       c =        4480  (1942, 7017)
       d =        3841  (2625, 5057)
       wa =       39.36  (31.01, 47.7)
       wb =       16.67  (15.92, 17.41)
       wc =       13.05  (10.58, 15.51)
       wd =       21.34  (15.41, 27.28)
       xa =       99.23  (96.06, 102.4)
       xb =       103.5  (103.1, 103.9)
       xc =       273.5  (271.9, 275.2)
       xd =       298.2  (285.9, 310.5)
       y0 =        4158  (4049, 4266)

 C = 

     General model:
     fitresult(x) = y0+a*exp(-.5*((x-xa)/wa)^2)+b*exp(-.5*((x-xb)/wb)^2)+c*exp(-
                    .5*((x-xc)/wc)^2)+d*exp(-.5*((x-xd)/wd)^2)
     Coefficients (with 95% confidence bounds):
       a =        1693  (1089, 2297)
       b =        8768  (8145, 9392)
       c =        4480  (1942, 7017)
       d =        3841  (2625, 5057)
       wa =       39.36  (31.01, 47.7)
       wb =       16.67  (15.92, 17.41)
       wc =       13.05  (10.58, 15.51)
       wd =       21.34  (15.41, 27.28)
       xa =       99.23  (96.06, 102.4)
       xb =       103.5  (103.1, 103.9)
       xc =       273.5  (271.9, 275.2)
       xd =       298.2  (285.9, 310.5)
       y0 =        4158  (4049, 4266)

我想修改上面的变量以生成下表并将此表保存为 .txt 或 .csv 文件:

Variables   a   b   c   d   wa   wb   wc   wd   xa   xb   xc   xd  y0
A                                                   
B                                                   
C   

或者

Variables = [a, b, c, d, wa, wb, wc, wd, xa, xb, xc, xd, y0]
A = [#, #, #, #, #, #, #, #, #, #, #, #, #]
B = [#, #, #, #, #, #, #, #, #, #, #, #, #] 
C = [#, #, #, #, #, #, #, #, #, #, #, #, #]

【问题讨论】:

    标签: matlab variables save output workspace


    【解决方案1】:

    您可以使用 fprintf 或 writetable 函数创建表格并打印到 .txt 文件。基本上,您创建一个包含变量名称作为字符串的元胞数组。然后你可以将它们传递给 writetable 函数中的表,或者简单地在 fprintf 函数中打印它们。您还必须将变量传递给向量,并且您可以创建一个循环,将每个变量从每个拟合添加到向量。这是一个简短的示例,您可以使用以下原则:

    RowLabels = {'Variables';'A';'B';'C'};
    a = [1693;1693;1693];
    b = [8767;8767;8767];
    c = [4480;4480;4480];
    d = [3841;3841;3841];
    
    T = table(a,b,c,d,'RowNames',RowLabels)
    
    writetable(T,'myFile.txt','WriteRowNames',true)
    

    您可以使用 type 命令查看文件:

    type myFile.txt
    

    显然,您必须创建某种循环,将变量值存储在向量 a、b、c、d 等中。但希望这能让您了解您需要做什么。您可以探索 fprintf 选项,它的工作方式类似。您可以通过键入

    找到语法
    doc fprintf
    

    在命令行窗口中。

    【讨论】:

    • 问题是 A、B 和 C 变量包含 - 让我们称之为 - “子变量”,它们只出现在命令窗口而不是工作区。我想访问这些变量中的数据(子变量)。
    • 你能添加产生这个输出的代码吗?很难从您所拥有的情况中判断发生了什么,但我认为如果您正确设置变量,则没有任何理由不会在工作区中创建变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    相关资源
    最近更新 更多