每天五分钟解决一个人工智能问题。
前情回顾
import numpy as np
v1 = np.array([1,1])
v1
输出:
array([1, 1])
m1 = np.array([[0,-1], [1,0]])
m2 = np.array([[0,1],[-1,0]])
print(m1)
print(m2)
输出:
[[ 0 -1]
[ 1 0]]
[[ 0 1]
[-1 0]]
矩阵m1 (它的物理意义是左转90度), 矩阵m2 (它的物理意义是右转90度)
开始今天的正题:
现在我要把一个向量右转90度再左转90度,那最后的结果应该是还回到原来的位置。
接下来就用代码实现这部分逻辑:
v1为向量,m2为右转90,m1为左转90
v1 = np.array([1,1])
new_v1 = np.matmul(m2, v1)
#把v1向量带入m2矩阵进行运算
new_v1
输出:
array([ 1, -1])
很好已经右转,再左转,把new_v1向量交给m1矩阵
new_new_v1 = np.matmul(m1, new_v1)
new_new_v1
输出:
array([1, 1])
看到没?以上操作相当于把向量先右转再左转。结果我们预想的一样,回到了(1,1)
我们再尝试一下先左转再右转:
代码如下:
v1 = np.array([1,1])
v1
输出:
array([1, 1])
交给m1矩阵,进行左转:
new_v1 = np.matmul(m1, v1)
#把v1向量带入m2矩阵进行运算
new_v1
输出:
array([-1, 1])
交给m2矩阵再右转:
new_new_v1 = np.matmul(m2, new_v1)
new_new_v1
输出:
array([1, 1])
以上操作相当于把向量先左转再右转
先不要看答案,先猜一下一下运算的结果是什么
#
v1 = np.array([1,1])
new_v1 = np.matmul(m1, v1)
new_new_v1 = np.matmul(m1, new_v1)
new_new_v1
你猜到了吗?
array([-1, -1])
目录:
人工智能必知必会-前言
人工智能必知必会-标量,向量,矩阵,张量
人工智能必知必会-向量的加减与缩放
人工智能必知必会-向量的内积
人工智能必知必会-向量之间的距离
人工智能必知必会-初识矩阵
人工智能必知必会-矩阵与向量
人工智能必知必会-矩阵的加减法
人工智能必知必会-矩阵乘法
人工智能必知必会-矩阵与方程组
人工智能必知必会-再看矩阵与向量
人工智能必知必会-矩阵与向量乘法的物理意义
人工智能必知必会-词向量(案例)
人工智能必知必会-矩阵相乘上
人工智能必知必会-矩阵相乘下