使用Matlab将元素添加到文本文件中

时间:2017-07-22 11:12:53

标签: matlab

假设我有一个由以下数组组成的文本文件:

[1]
[1, 2, 6, 7, 4]
[1, 2, 6, 7, 8, 3, 4]
[1, 2, 6, 5, 7, 4]
[1, 2, 6, 5, 7, 8, 3, 4]
[1, 2, 3, 8, 6, 7, 4]
[1, 2, 3, 8, 6, 5, 7, 4]
[1, 2, 3, 4]
[2, 6, 7, 4]
[2, 6, 7, 8, 3, 4]
[2, 6, 5, 7, 4]
[2, 6, 5, 7, 8, 3, 4]
[2, 3, 8, 6, 7, 4]
[2, 3, 8, 6, 5, 7, 4]
[2, 3, 4]
[3, 8]
[8, 6, 7]
[8, 6, 5, 7]
[5]

我想将每个数组的第一个元素追加到相应数组的末尾。 我希望我的输出看起来像这样:

[1, 1]
[1, 2, 6, 7, 4, 1]
[1, 2, 6, 7, 8, 3, 4, 1]
[1, 2, 6, 5, 7, 4, 1]
[1, 2, 6, 5, 7, 8, 3, 4, 1]
[1, 2, 3, 8, 6, 7, 4, 1]
[1, 2, 3, 8, 6, 5, 7, 4, 1]
[1, 2, 3, 4, 1]
[2, 6, 7, 4, 2]
[2, 6, 7, 8, 3, 4, 2]
[2, 6, 5, 7, 4, 2]
[2, 6, 5, 7, 8, 3, 4, 2]
[2, 3, 8, 6, 7, 4, 2]
[2, 3, 8, 6, 5, 7, 4, 2]
[2, 3, 4, 2]
[3, 8, 3]
[8, 6, 7, 8]
[8, 6, 5, 7, 8]
[5, 5]

我如何在matlab中执行此操作?

2 个答案:

答案 0 :(得分:0)

My Matlab(2014b)不支持2016年及以后的字符串中的文字。我无法测试,但是based on this page下面显示的过程也应该可以使用,只需对单元格到字符串数组进行适当的调整。 我会发表评论,但我还不能。可以很方便地显示您的数据如何,例如,

str = ["Mercury","Gemini","Apollo";
   "Skylab","Skylab B","ISS"] 

a={'alpha','beta','gamma'};

使用不同大小的矩阵的常用方法是使用单元阵列。如果是这种情况,您可以执行以下操作:

a={'alpha','beta','gamma'};
for i=1:numel(a), 
      a{i}=strcat(a{i},a{i}(1)); 
end
a = 
   'alphaa'    'betab'    'gammag'

如果是其他格式,您可以相应调整文本调用。

此外,在the same link as above的部分(拆分,连接和排序字符串数组)中,您可能会以更简单的方式得到答案(但我无法测试)。

Edit1:在解释上犯了错误!

答案 1 :(得分:0)

此代码段可以解决问题:

fid = fopen('filename.txt');
line1 = fgetl(fid);
p =str2num(line1);
a=[p,p(1)];
while ischar(line1)
    line1 = fgetl(fid);
    if line1(1)==-1
        break;
    end
    p=str2num(line1);
    a=[p,p(1)];
end
fclose(fid);