Matlab基础刻意练习

Matlab基础刻意练习

3.13 奇数阶魔方矩阵的编程

魔方矩阵的设计思路之一,时构造一个扩展的零矩阵A,随后用顺序矩阵v填入A的相应对角线,再用行、列叠加使矩阵A的中心n阶矩阵零元素填满。最后取出中心n阶方阵,即得魔方矩阵。
下面时奇数阶魔方矩阵得程序。
Matlab基础刻意练习

Matlab基础刻意练习

例:用上述程序,计算3阶、五阶魔方矩阵。
Matlab基础刻意练习

Matlab基础刻意练习

为了了解魔方矩阵得建立过程,查看下列各矩阵。

Matlab基础刻意练习
Matlab基础刻意练习
Matlab基础刻意练习

注:v表示顺序数矩阵,A表示扩展矩阵,sum(M)表示列元素之和的向量,sum(M‘)表示行元素之和的向量,trace(M)表示主对角线元素之和,trace(M’)表示反主对角线元素之和。

3.14 数据类型概述

MATLAB有14种基本数据类型(或称等级)。如字符型、整数8位、整数16位、整数32位、数值8位、数值16位、数值32位、数值单精度、数值双精度、稀疏型、单元型、结构型、java型和句柄函数。
字符型数据是由单引号括起来的字符串或数字组合的字符串组成。它的储存方式是以ASCII码存储。一个字符串在MATLAB中是作为一维数组,它的长度恰好等于字符的个数。

3.15 字符型数组

用单引号括起来的字符和数字的组合称为字符串或称为字符数组。MATLAB中对字符串书写格式为
S=‘Any Charactiors’ %用来创建任意字符的字符串。
S=char(x) %是用ASCII代码的向量x,来创建字符串。
X=double(S) %将字符串转换成MATLAB的双精度。
字符数组和矩阵一样可以实现水平连接和垂直连接,可以进行字符数组的比较,寻找,字符串替换等运算。
例:建立字符串数组A=‘Today is Saturday.’及B=‘I want go home.’检查它们的长度,将它们进行水平连接和垂直连接。
Matlab基础刻意练习

Matlab基础刻意练习

注:size(A)表示检查字符数组A的长度。
strcat(A,B)表示字符数组A、B进行水平连接。
strvcat(A,B)表示字符数组A、B进行垂直连接。
例:已知字符串s=‘Find the starting indices of the shorter string.’;寻找单词“the”的起始位置。
Matlab基础刻意练习

注:在MATLAB中寻找已知字符串str1中是否含有字符串str2,的函数为 k=findstr(‘str1’,‘str2’)式中,k为返回值,k指出str2的起始位置。
例:已知字符串S1=‘The area is at least 400 square meters’,将其中400改为1000.
Matlab基础刻意练习

注:字符串替换的函数为S=strrep(S1,S2,S3)式中,S2为S1中含有的字符串,S3为替换S2的字符串,S为替换后的字符串。
例:将ASCII字符以3行32列显示。
Matlab基础刻意练习