学习触动和矩阵的维度问题

算一算,从第一页到第三十九页我看了4个小时,最大的感受是关于MATLAB的帮助文件的使用。MATLAB的学习者与c语言学习者相比更加的小众,因此许多东西你在网上是找不到

只能查帮助文件了,幸亏MATLAB提供极其详细的帮助文件。(但我渣渣的英语呀)

1:直接使用help命令:help 你所要查询的东西,但显示的东西比较粗略

2:在command界面输入helpdesk,弹出帮助导航窗口界面

3:在光标停在你想查询的东西上,按下F1,自动回弹出个简化的窗口,并提供并不简化的帮助

最后,我恨我渣渣的英语

矩阵的维度是我遇到的第一个知识点性的难题

线是一维的,面是二维,空间为三维,这是生活中的维度认识,而矩阵的一维,二维,三维则分别对应着列向量(表达可能有偏差),有行向量和列向量的矩阵,在二维矩阵的基础上再加Z的(像这样A[2][2][2])。

维度在计算中的使用,cat函数(连接两个的矩阵)cat(dim,A,B)。其中dim是个参数,他指明了如何生成新的矩阵和生成矩阵的性质

PS:

>> A = [1 2; 3 4];

>> B = [5 6; 7 8];

>> A

A =

1     2

3     4

>> B

B =

5     6

7     8

>> cat(1, A, B) %按列连接(列数相同),

ans =

1     2

3     4

5     6

7     8

>> cat(2, A, B) %按行连接(行数相同)

ans =

1     2     5     6

3     4     7     8

>> cat(3, A, B) %合成效果如下图

ans(:,:,1) =

1     2

3     4

ans(:,:,2) =

5     6

7     8

a = magic(3) 
b = pascal(3) 
k=1,合并后形如 [a;b],行添加矩阵(要求a,b的列数相等才能合并);
>> c = cat(1,a,b) 
c = 
     8     1     6
     3     5     7
     4     9     2
     1     1     1
     1     2     3
     1     3     6
k=2,合并后形如[a,b],列添加矩阵(要求a,b的行数相等才能合并)
>> c = cat(2,a,b) 
c = 
     8     1     6     1     1     1
     3     5     7     1     2     3
     4     9     2     1     3     6
>> c = cat(3,a,b) 
c(:,:,1) = 
     8     1     6
     3     5     7
     4     9     2
c(:,:,2) = 
     1     1     1
     1     2     3
     1     3     6
n维的矩阵合并,要求n-1维维数相等才可以. 
>> c = cat(4,a,b) 
c(:,:,1,1) = 
     8     1     6
     3     5     7
     4     9     2
c(:,:,1,2) = 
     1     1     1
     1     2     3
     1     3     6

类似的flipdim(A,dim)函数的翻转方向也是按照上述规则

学习触动和矩阵的维度问题,布布扣,bubuko.com

时间: 2024-10-07 02:15:22

学习触动和矩阵的维度问题的相关文章

OpenCV学习(3)--Mat矩阵的操作

CvMat的矩阵结构 1 typedef struct CvMat 2 { 3 //矩阵中元素的类型 4 int type; 5 //行数据长度 6 int step; 7 8 /* for internal use only */ 9 int* refcount; 10 int hdr_refcount; 11 12 //指向数据的指针 13 union 14 { 15 uchar* ptr; 16 short* s; 17 int* i; 18 float* fl; 19 double* d

【日常学习】codevs1287 矩阵乘法题解

转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看. 先上题目 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的.小明希望你来帮他完成这个任务. 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,要你求出他们相乘的积(当然也是矩阵). (输入数据保证aj=bi,不需要判断) 矩阵乘法的定义:

学习笔记:矩阵的基本运算的实现

2017-09-05 21:33:33 writer:pprp 昨天开始就上课了,没有整天整天的时间去编代码了,充分抓住每天晚上的时间吧, 今天下午预习了一下线性代数中矩阵最基本的运算,今晚就打算实现一下基本的功能 矩阵加法,矩阵减法,矩阵乘法,矩阵转置 代码如下: /* @theme:矩阵类的实现 @writer:pprp @begin:20:48 @end:21:30 @declare:注意行还有列的赋值 @date:2017/9/5 */ #include <bits/stdc++.h>

SharpGL学习笔记(八) 矩阵堆栈和变换的综合例子: 机器人

我们先引入关于"矩阵堆栈"的官方说法: OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域.实际上,在创建.装入.相乘模型变换和投影变换矩阵时,都已用到堆栈操作.一般说来,矩阵堆栈常用于构造具有继承性的模型,即由一些简单目标构成的复杂模型.例如,一辆自行车就是由两个轮子.一个三角架及其它一些零部件构成的.它的继承性表现在当自行车往前走时,首先是前轮旋转,然后整个车身向前平移,接着是后轮旋转,然后整个车身向前平移,如此进行下去,这样自行车就往前走了.矩阵堆栈对复杂模型

OpenGL学习脚印: 向量和矩阵要点(math-vector and matrices)

写在前面 前面几节内容环境搭建,绘制三角形,以及使用索引绘制,让我们对现代OpenGL中绘图做了简单了解.要继续后面的部分,需要熟悉OpenGL中涉及的数学知识.因此本节开始介绍OpenGL中的基本数学. 介绍这部分内容的主旨在于对OpenGL涉及的数学有个整体把握,重点把握一些概念在OpenGL中的应用.内容尽量以例子形式说明,仅在必要时会给出数学证明.一个主题往往涉及过多内容,对于文中省略的部分,请参考相应的教材. 通过本节可以了解到 向量基本概念和操作 矩阵的基本概念和操作 GLM数学库

学习笔记:矩阵

今天讲了矩阵……就总结一下好了 http://blog.csdn.net/tomorrowtodie/article/details/52311373 http://www.matrix67.com/blog/archives/276 矩阵经典例题 很多内容来自学姐课件 矩阵 啥是矩阵?这个很好懂吧? (不懂我也没办法) 大体就长这样 矩阵乘法 蛤?两个矩阵怎么做乘法?并不是所有矩阵都能做乘法的. 只有n行p列的矩阵和p行m列的矩阵才可以相乘. 相乘完就是一个n*m的矩阵喽. 就这样子.左边的每

Numpy学习--多维矩阵“理解 : 的用法”

:(冒号)在多维数组选快儿时经常会用到,今天特此做下笔记. #############创建numpy数组 #1111111定义普通数组 #先直接定义是一个list list1 = [[2,3,1,1],[3,4,5,7],[3,1,6,1]] #然后np.array() 把list 变成数组 array = np.array(list1) #2222222 定义空数组 #全1 数组用ones zero =np.zeros((3,2)) print zero ################ #数

用Spark学习矩阵分解推荐算法

在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib中,推荐算法这块只实现了基于矩阵分解的协同过滤推荐算法.而基于的算法是FunkSVD算法,即将m个用户和n个物品对应的评分矩阵M分解为两个低维的矩阵:$$M_{m \times n}=P_{m \times k}^TQ_{k \times n}$$ 其中k为分解成低维的维数,一般远比m和n小.如果大

《学习opencv》笔记——矩阵和图像操作——cvGertDims,cvGetDimSize,cvGetRow,cvGetRow,cvGetSize and cvGetSubRect

矩阵和图像的操作 (1)cvGetDims函数 其结构 int cvGetDims(//返回矩阵的维度和每维上的大小 const CvArr* arr,//目标矩阵 int * sizes = NULL//每个维上的大小,是个数组 ); 实例代码 #include <cv.h> #include <highgui.h> #include <stdio.h> #include <iostream> using namespace std; int main()