for i = 1:1:5724 D(i) = sqrt((contour(i,2)-579).^2 + (contour(i,1)-603).^2); end plot(D(i))
时间: 2023-11-04 18:06:04 浏览: 56
在这段代码中,您正在计算从点 (603, 579) 到轮廓中每个点的距离,然后将这些距离绘制成图形。但是,在您的代码中,您在循环中使用变量 i,但是在 plot() 函数中,您只是使用了最后一个 i 的值,因此只会绘制一个数据点,而不是所有距离的图形。
如果您想绘制所有距离的图形,您需要将 plot() 函数放在循环内部。同时,您需要使用一个变量来保存每个距离的值,以便在循环结束后可以使用它们来绘制图形。以下是修改后的代码:
```
D = zeros(1, 5724); % 创建一个向量来保存距离值
for i = 1:5724
D(i) = sqrt((contour(i, 2) - 579)^2 + (contour(i, 1) - 603)^2);
end
plot(D); % 绘制所有距离的图形
```
请注意,我将 plot() 函数移动到了循环外部,并且使用了一个向量 D 来保存距离值。在循环中,每个距离值都会计算并存储在 D 向量中。在循环结束后,我们使用 plot() 函数来绘制所有距离的图形。
相关问题
for i=1:1:5724 D(i)=sqrt((contour(:,2)-579).^2+(contour(:,1)-603).^2) end
在这段代码中,您定义了一个循环,其中您计算了一个名为D的向量。在每次迭代中,您采用了一个名为“contour”的矩阵,并从其第二列和第一列中提取值,然后使用它们计算每个元素与给定点(579,603)之间的距离。最后,您将结果存储在向量D的相应位置中。
需要注意的是,您的代码中的距离计算公式有误。正确的公式应该是:
D = sqrt((contour(:,2)-579).^2 + (contour(:,1)-603).^2);
其中“+”符号用于将两个平方项相加。
for i=1:1:5724 D(i)= sqrt((contour(:,2)-579).^2 + (contour(:,1)-603).^2); end
这段代码中存在语法错误,应该修改为:
```matlab
for i = 1:1:5724
D(i) = sqrt((contour(i,2)-579).^2 + (contour(i,1)-603).^2);
end
```
在计算每个点到坐标 $(603, 579)$ 的距离时,应该使用当前迭代变量 $i$ 所代表的点的坐标,即 `contour(i,1)` 和 `contour(i,2)`。此外,计算平方和时应该使用加号进行运算。
阅读全文