【測繪程式設計試題集】 試題02 矩陣卷積計算
資料
N 矩陣
10.00 13.50 14.00 13.80 13.90 15.60 13.30 14.50 13.70 14.40
13.50 13.30 15.10 16.40 15.40 14.90 11.30 13.50 17.70 13.30
15.70 14.00 16.30 18.60 16.80 16.60 12.50 15.50 16.70 14.80
16.50 15.90 15.20 17.40 17.60 17.70 14.30 14.50 18.50 15.60
12.60 13.30 14.40 16.50 18.40 18.40 17.30 16.50 19.70 17.40
14.10 17.70 16.00 15.40 14.50 19.60 15.20 18.50 14.70 18.30
18.50 14.50 14.70 13.10 15.40 14.30 12.30 17.50 12.40 13.20
22.30 15.20 15.80 18.00 17.20 13.50 13.70 16.50 14.70 15.30
17.50 16.30 16.30 13.60 18.40 15.70 16.30 15.50 15.70 16.40
13.20 17.30 15.00 12.80 19.10 16.60 17.60 16.50 13.30 17.30
M 矩陣
0.20 0.30 0.20
0.25 0.50 0.35
0.10 0.30 0.20
問題
解
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : ju.py
# @Author : huifer
# @Time : 2018/10/18 08:29
def read_m(path):
m = []
with open(path, 'r') as f:
for i in f.readlines():
aa = i.replace('\n', '').split("\t")
bb = [eval(a) for a in aa]
m.append(bb)
return m
def MIJ(I, J, i, j):
n = 10
res = 0;
if (I - i - 1 < 0 or J - j - 1 < 0 or I - i - 1 > n - 1 or J - j - 1 > 9):
res = 0
else:
res = read_m('M矩陣.txt')[i][j]
return res
def suanfa1(I, J):
m = 3
upper = 0
under = 0
for i in range(m):
for j in range(m):
mij = MIJ(I, J, i, j)
eps = 1e-10
if abs(mij) > eps:
upper += mij * read_m("N矩陣.txt")[I - i - 1][J - j - 1]
under += mij
if under == 0:
return 0
else:
return upper / under
def suanfa2(I, J):
m = 3
upper = 0
under = 0
for i in range(m):
for j in range(m):
mij = MIJ(I, J, i, j)
eps = 1e-10
if abs(mij) > eps:
upper += mij * read_m("N矩陣.txt")[9 - (I - i - 1)][9 - (J - j - 1)]
under += mij
if under == 0:
return 0
else:
return upper / under
def main1():
n = 10
v = [
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
]
for i in range(n):
for j in range(n):
v[i][j] = suanfa1(i, j)
return v
def main2():
n = 10
v = [
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
list(range(10)),
]
for i in range(n):
for j in range(n):
v[i][j] = suanfa2(i, j)
return v
if __name__ == '__main__':
m = read_m("M矩陣.txt")
n = read_m("N矩陣.txt")
print("===演算法1====")
va1 = main1()
for i in range(0, va1.__len__()):
# print(i)
for j in range(0, va1.__len__()):
print(format(float(va1[i][j]), "0.2f") + " ", end='')
# print(" ",end='')
print('\n')
print("===演算法2====")
va2 = main2()
for i in range(0, va2.__len__()):
# print(i)
for j in range(0, va2.__len__()):
print(format(float(va2[i][j]), "0.2f") + " ", end='')
# print(" ",end='')
print('\n')
結果
===演算法1====
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 10.00 11.40 12.64 13.80 13.89 14.36 14.46 14.30 13.93
0.00 11.56 12.07 13.03 14.25 14.61 14.76 14.33 13.78 13.99
0.00 13.66 13.29 13.83 15.00 15.78 15.72 14.71 13.74 14.17
0.00 15.59 15.07 14.95 15.73 16.86 16.98 15.70 14.33 14.70
0.00 14.94 15.02 14.95 15.56 16.85 17.60 17.01 15.73 15.85
0.00 13.85 14.51 14.82 15.37 16.10 17.27 17.52 16.95 16.59
0.00 15.43 15.17 15.30 15.25 15.23 15.96 16.43 16.52 16.17
0.00 19.08 17.34 16.38 15.40 15.34 15.30 15.06 14.99 15.35
0.00 19.86 18.46 16.89 15.50 15.94 15.97 15.19 14.64 15.30
===演算法2====
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 17.30 15.70 15.36 15.90 17.00 17.60 16.59 15.23 15.03
0.00 16.90 16.03 15.51 15.75 16.59 17.16 16.63 15.48 15.10
0.00 16.16 15.86 15.56 15.55 15.77 16.16 16.62 16.03 15.48
0.00 14.74 14.70 15.10 15.18 14.84 14.79 15.81 15.96 15.49
0.00 15.44 14.66 15.04 15.40 15.33 14.85 15.41 15.31 15.35
0.00 17.05 16.48 16.32 16.46 16.57 16.54 16.35 15.32 15.24
0.00 16.91 17.55 17.31 16.83 16.66 17.46 17.45 16.33 15.49
0.00 15.64 16.60 16.85 16.00 15.48 16.63 17.61 17.05 15.84
0.00 14.40 15.54 15.91 15.02 14.11 15.26 16.79 16.89 15.94
相關文章
- 【測繪程式設計試題集】 試題04 最短路徑計算程式設計
- 【測繪程式設計試題集】 試題01 計程車軌跡資料計算程式設計
- 【測繪程式設計試題集】 試題09 反距離加權插值程式設計
- 【測繪程式設計試題集】 試題06 軌跡資料壓縮演算法程式設計演算法
- 程式設計師進階之路之面試題與筆試題集錦(三)線上程式設計題程式設計師面試題筆試
- 【測繪程式設計試題集】 試題03 利用線性迴歸模型進行衛星軌道的預報程式設計模型
- 【程式設計測試題】阿里巴巴2019年提前批程式設計題程式設計阿里
- verilog實現矩陣卷積運算矩陣卷積
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案二面試題筆試
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案一面試題筆試
- 雲端計算工程師面試題集錦,雲端計算面試題及答案工程師面試題
- 雲端計算面試題及答案,雲端計算工程師面試題集錦面試題工程師
- 【程式設計測試題】頭條校招程式設計
- 程式設計師進階之路之面試題與筆試題集錦(一)程式設計師面試題筆試
- 雲端計算工程師面試題集錦,常見雲端計算面試題及答案工程師面試題
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- 矩陣計算矩陣
- 程式設計師面試常問計算機網路問題程式設計師面試計算機網路
- 雲端計算面試題及答案,AWS雲端計算面試題面試題
- 【程式設計測試題】遊戲任務標記程式設計遊戲
- 【程式設計測試題】素數對、不要二、求和程式設計
- 測試面試題-積累篇面試題
- 面試題:web程式設計技術考試題庫(含答案)面試題Web程式設計
- 雲端計算面試題及答案,雲端計算崗位精品面試題面試題
- Linux雲端計算面試題第二彈,樂視雲端計算面試題Linux面試題
- 考試試題A卷第一題
- 考試試題A卷第二題
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- 智力題(程式設計師面試經典)程式設計師面試
- Java程式設計師面試題及解答Java程式設計師面試題
- 程式設計師50+Java面試題程式設計師Java面試題
- JAVA程式設計師面試題庫分享Java程式設計師面試題
- 好程式設計師Linux雲端計算教程分享Shell指令碼面試題程式設計師Linux指令碼面試題
- 計算矩陣的秩矩陣
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題一程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題二程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題三程式設計師Linux面試
- 習題試卷