如何在循环中连接数组? MATLAB

时间:2015-12-23 13:51:19

标签: arrays matlab loops concatenation

有一个循环;

for i = 1:n

X_rotate  = X.*cos(i*increment) - Y.*sin(i*increment);
X_rotateh = X_rotate./cos(deg2rad(helix_angle));
Y_rotate  = X.*sin(i*increment) + Y.*cos(i*increment);

Helix     = [X_rotateh(1:K1) ; Y_rotate(1:K1)];
fileID    = fopen('helix_values.txt', 'w');
fprintf(fileID,'%f %f\n ', Helix);
fclose(fileID);
end

X Y 是行向量,其大小取决于输入。顺便说一下,迭代次数 n X Y <的大小/ em> 可以有所不同。正如我所说,他们依赖于投入。

打开文本文件时,只存在 X_rotateh Y_rotate 的最后一次迭代值。我需要从 首先收集 X_rotateh Y_rotate 的值值为每次迭代的 K1 th 值。我尝试使用 cat 命令。它没有给出我想要的东西。另一方面,我经常遇到有关阵列长度或大小的问题。

这些值应该在文本文件中按顺序排列,如

%for first iteration;

X_rotateh(1) Y_rotate(1)

X_rotateh(2) Y_rotate(2)

.

.

X_rotateh(K1) Y_rotate(K1)

%for second iteration;

X_rotateh(1) Y_rotate(1)

X_rotateh(2) Y_rotate(2)

.

.

X_rotateh(K1) Y_rotate(K1)
%so on..

我该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:1)

正如您所说,文本文件包含上次迭代的结果。这可能是因为您使用'w'权限打开文本文件。其中写入新内容但也删除文件中先前存储的内容。尝试使用'a'权限。这将添加新内容而不删除以前的内容。

fileID = fopen('helix_values.txt', 'a');

您还可以在MATLAB中使用help fopen命令找到更多详细信息。

如果这可以解决问题,请告诉我。