有一个循环;
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..
我该怎么办?
提前致谢。
答案 0 :(得分:1)
正如您所说,文本文件包含上次迭代的结果。这可能是因为您使用'w'
权限打开文本文件。其中写入新内容但也删除文件中先前存储的内容。尝试使用'a'
权限。这将添加新内容而不删除以前的内容。
fileID = fopen('helix_values.txt', 'a');
您还可以在MATLAB中使用help fopen
命令找到更多详细信息。
如果这可以解决问题,请告诉我。