假设我有一个由以下数组组成的文本文件:
[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中执行此操作?
答案 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);