求助,同时分享一下我的想法:matlab处理excel数据
matlab吧
全部回复
仅看楼主
level 1
如表所示6组数据,第一列为X坐标,第二列为Y坐标,第三列为该点对应的数值。
(X Y 输出值
145 155 1
113 199 2
285 205 3
53 113 4
226 123 5
56 256 6 )(这是个电子表格,原表暂时找不到了,就用空格隔开的)
下图为一个矩形,要求通过matlab将矩形内外的点区分出来,生成下图(点的形状无所谓,就是实现一个区分矩形内和矩形外的一个过程)
导出数据如下表所示
表一,表二
如题
2022年01月12日 00点01分 1
level 1
我的思路是,
一、首先读取电子表格,
[num,txt,raw]=xlsread('D/(电子表格位置)/电子表格名称.xlsx')
num就是我们需要的数据,第一列是X坐标,第二列是Y坐标,第三列是输出值。
二、然后就是画线了,我的思路是画4条线,图中属于给定了四边形坐标(坐标整的有点复杂还带了小数点,其实我感觉没必要,练习嘛,直接按整数就行),那么我可以用两点式写直线,而且不用等号,用<>号,但我不会写。。。而且,因为有四条线,我不知道要不要改变字母。求助大家帮我写一下公式吧,而且我不清楚有没有比两点式更清晰的写法。
三、最后就是用if判断了,这里我有两个思路。
第一个就是跟前面第二步一块写,如果大于第一条线大于第二条线小于第三条线小于第四条线,则输出该点与对应的第三个数值。
第二个思路是将四条线围起来的图形命名为A,属于A的输出在一张表里,不属于A的输出在另一张表里。
但现在,我只会步骤一。而步骤二和步骤三,我写不出来。
大神能帮我写出来吗?
2022年01月12日 02点01分 2
level 1
经过学习,我现在可以做到第一步和第一步了,
第一步
%读取表格
[num,txt,raw]=xlsread('D/(电子表格位置)/电子表格名称.xlsx')
第二步
%画四边形(坐标简化了一下,取消了小数点后面的)
x=[200 270 129 58 200];
y=[50 120 262 191 50];
plot(x,y)
axis([0 500 0 500])
但我还不知道如何选取四边形的数据。
2022年01月12日 05点01分 3
level 1
那么,现在,我也许可以判断是不是在四边形内部了
xv= [200 270 129 58 200]; %x坐标
yv= [50 120 262 191 50];%y坐标
x=145,113,285,53,226,56;
y=155,199,205,113,123,256;
in=inpolygon(x,y,xv,yv)
plot(xv,yv,x(in),y(in),'.r',x(~in),y(~in),'.b')
还没运行,回到有matlab的电脑上我再试试,目测可以,但我不知道xy能不能这么写,因为我没有给它编号,如果能用excel导入就好了,我现在只会这种。
2022年01月12日 05点01分 4
最后一步就是根据110101这个数据,提取电子表格里面的数据了
2022年01月12日 05点01分
这里
2022年01月17日 17点01分
level 9
画出来还是求出来,不是一个概念
2022年01月12日 13点01分 5
1