使用Matlab通过层次分析法求权重
Matlab代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
A=input('A=');
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36
1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
if CR<0.10
disp('CI=');disp(CI);
disp('CR=');disp(CR);
end
Python的数学功能(numpy库)
导入python库
1
import numpy as np
- np.array数组
- np.mat矩阵
使用Python实现Matlab中的plot等功能
导入python库
1
import matplotlib.pyplot as plt
- 改变标签
1
2
3
plt.xlabel('x/m')
plt.ylabel('y/m')
plt.title('')
-
图的绘制
-
折线图,直线图
-
1
plt.plot(x,y)
-
-
散点图
-
1 2
plt.scatter(x,y,[c='',s='']) #c为颜色,s为半径(应该是),可以画实心圆
-
-
爬取网络工具产生的数据
想得到某种资源时,苦于没找到代码而无法本地运行,找到在线版工具又发现输入数据量太大…我们可以使用Python中的selenium测试库中的webdriver来自动调用浏览器(以Google Chrome为例),输入数据
在Python中导入相应的库(需要安装Chrome对应的ChromeDriver并配置环境变量,或在Chrome()括号中填写Driver位置
1
2
3
4
5
from selenium import webdriver
#调用Chrome
browser=webdriver.Chrome()
#让浏览器打开链接
browser.get(url)
导入后就可以正式进入自动操作啦~
-
在网页中自动填写,获取输入输出数据
-
通过查找页面中的xpath,调用find_elemnet_by_path.clear(),send_keys(),text,click()来清空,输入,获取内容,点击
1
browser.find_element_by_xpath('//*[@id="a0"]').xxx
-
其他参考:
-
Chrome WebDriver下载链接
-
Chrome新建一个新窗口
-
调用脚本,通过浏览器的脚本打开
1
browser.execute_script('window.open("http://www.ambrsoft.com/TrigoCalc/Circles2/circle2intersection/CircleCircleIntersection.htm");')
-
-
Chrome切换测试窗口
-
新建handle,通过handle是swith_to.window来实现
1 2
handles=browser.window_handles browser.switch_to.window(handles[num])#num为浏览器第n个标签
-
-
Google地球可方便的作图,标记(太方便了!)