figure(‘position’,get(0,'screensize'));axis(10*[-1 1 -1 1]);[x,y]=ginput;;用鼠标获得手掌的数据x,y 1)练习用fprintf把x,y两列数字打印到文本文件hand.txt,分别用fscanf 和 textscan两种方法读回数据,并plot确认读取正确。 2)利用polyarea函数计算手掌的面积。提示: 先试用A4纸(尺寸自行百度,或其他已知尺寸的物品)代替手,覆盖在屏幕上并描点计算面积,进而标定屏幕上的面积与实物的换算关系。 3)用save 存所有workspace的数据到文件,clear后,先用whos 查看文件中的数据,再用load只读取x数据,其它数据不读取。
时间: 2023-07-15 13:12:08 浏览: 73
1)将x和y写入文本文件hand.txt中:
```
fid = fopen('hand.txt', 'w');
fprintf(fid, '%f %f\n', [x y]');
fclose(fid);
```
使用fscanf读取数据:
```
fid = fopen('hand.txt', 'r');
data = fscanf(fid, '%f %f', [2 inf]);
fclose(fid);
x = data(1,:);
y = data(2,:);
plot(x,y);
```
使用textscan读取数据:
```
fid = fopen('hand.txt', 'r');
data = textscan(fid, '%f %f');
fclose(fid);
x = data{1};
y = data{2};
plot(x,y);
```
2)首先需要确定屏幕上的面积与实物的换算关系。我们可以使用A4纸的尺寸(210mm x 297mm)来计算屏幕上的面积与实际面积的比例。
假设屏幕上手掌的面积为S,A4纸在屏幕上的宽度为w1,A4纸的实际宽度为w2,则有:
S/w1^2 = (210/25.4)*(297/25.4)/w2^2
解得:
w2 = sqrt((210/25.4)*(297/25.4)*w1^2/S)
接下来就可以使用polyarea函数计算手掌的面积了:
```
w1 = max(x) - min(x);
w2 = sqrt((210/25.4)*(297/25.4)*w1^2/polyarea(x,y));
real_area = polyarea(x*w2,y*w2)
```
3)使用save命令将所有workspace的数据存储到文件中:
```
save('data.mat');
```
使用whos命令查看文件中的数据:
```
load('data.mat', 'x');
```
只读取了x数据,其它数据没有被读取。
阅读全文