【问题标题】:Saving vectors into a matrix matlab将向量保存到矩阵 matlab
【发布时间】:2014-03-08 04:09:23
【问题描述】:

我有一堆从循环中生成的数组

Peaks [1, 2, 3, 4, 5]
Latency [23,24,25,26,27] etc.

我想将所有这些放在一个矩阵中,如下所示:

Peaks Latency
1      23
2      24
3      25
4      26
5      27

然后我想把它保存为一个文本文件。

这似乎很简单,但现在似乎找不到任何与我密切相关的东西。

【问题讨论】:

    标签: arrays matlab matrix


    【解决方案1】:

    连接:

    >> Peaks = [1 2 3 4 5];
    >> Latency = [23 24 25 26 27];
    >> T = [Peaks(:) Latency(:)]
    T =
         1    23
         2    24
         3    25
         4    26
         5    27
    

    写:

    fileName = 'PeaksLatency.txt';
    hdr = {'Peaks','Latency'}
    txt = sprintf('%s\t',hdr{:}); txt(end) = [];
    dlmwrite(fileName,txt,'');                         % write header
    dlmwrite(fileName,T,'-append','delimiter','\t');   % append data
    

    【讨论】:

    • 超级!这很完美。也很简单,为什么我没有想到这一点。厚颜无耻的问题,给定一个数组 [12 2 13 1 14 15 1] 我怎样才能以相同的顺序获得一个新数组,但 12 已跳过/删除。干杯!
    • @Bastien 这是一个很好的问题,但请尝试y = x(~ismember(x,[1 2]))
    • 我刚刚从头开始问它,因为我意识到在评论中问这个不相关的东西可能不是一件好事,因为其他人可能看不到它。不过我会试试的!
    【解决方案2】:

    这里是代码

    Peaks = [1, 2, 3, 4, 5].';
    Latency = [23,24,25,26,27].';
    
    T = table(Peaks, Latency);
    
    writetable(T,'table.txt', 'Delimiter', '\t');
    

    请注意,您需要将PeaksLatency 制作成列向量(使用.' 运算符)。

    参考:http://www.mathworks.com/help/matlab/ref/writetable.html

    【讨论】:

    • table 数据类型是 Matlab version 2013b 中的新数据类型。
    • 好的,谢谢!这也有效! & 也很简单!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2014-01-02
    • 2021-12-04
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    相关资源
    最近更新 更多