TASK03 数据类型
语法知识
奇数阶魔方矩阵
数据类型的概述
字符型数组
实战演练
奇数阶魔方矩阵的编程
%This is program for create a matrix of odd order_magic
clear %
n=input('输入一个奇数')
if mod(n,2)==0
disp('输入数字必须是奇数')
else
n1=2*n-1;m=(n-1)/2; %计算扩展零矩阵A的行、列数n1和上、下对角线数m(不包括主对角线) %
A=zeros(n1);
for i=1:n %设置顺序数矩阵v
for j=1:n
v(i,j)=(i-1)*n+j;
end
end
for k=1:m+1 %在A矩阵内,填写m+1条上对角线
B=zeros(1,n-2+2*k);
B(k:(k+n-1))=v(k,:);
A=A+diag(B,n+1-2*k);
end
for k=m+2:n %在A矩阵内,填写m条下对角线
B=zeros(1,3*n-2*k);
B(n-k+1:2*n-k)=v(k,:);
A=A+diag(B,n+1-2*k);
end
if m==1 %3阶魔方时,行、列叠加填数
A(4,:)=A(4,:)+A(1,:);
A(2,:)=A(2,:)+A(5,:);
A(:,4)=A(:,4)+A(:,1);
A(:,2)=A(:,2)+A(:,5);
else %3阶以上奇数阶次时,行、列叠加填数
Bu=A(1:m,:);
Bd=A((n1-m+1):n1,:);
B1=A(:,1:m);
Br=A(:,(n1-m+1):n1);
A(m+1:2*m,:)=A(m+1:2*m,:)+Bd;
A((n1-2*m+1):n1-m,:)=A((n1-2*m+1):n1-m,:)+Bu;
A(:,m+1:2*m)=A(:,m+1:2*m)+Br;
A(:,(n1-2*m+1):n1-m)=A(:,(n1-2*m+1):n1-m)+B1;
end
M=A(m+1:(n1-m),m+1:(n1-m)) %取中央n阶方阵,即为魔方矩阵
end
建立两个字符串数组检查它们的长度,并将他们水平拼接起来,竖直拼接起来
函数
function abc1
A='Today is Thusday.'
B='I want to go home.'
na=size(A)
nb=size(B)
C=strcat(A,B)
D=strvcat(A,B)
nd=size(D)
double(D)
结果
>> abc1
A =
'Today is Thusday.'
B =
'I want to go home.'
na =
1 17
nb =
1 18
C =
'Today is Thusday.I want to go home.'
D =
2×18 char 数组
'Today is Thusday. '
'I want to go home.'
nd =
2 18
ans =
84 111 100 97 121 32 105 115 32 84 104 117 115 100 97 121 46 32
73 32 119 97 110 116 32 116 111 32 103 111 32 104 111 109 101 46
在一个字符串中寻找一个单词的位置
>> s='Find the starting indices of the shorter string.'
k=strfind(s,'the')
k1=strfind(s,'student')
k2=findstr('the',s)
s =
'Find the starting indices of the shorter string.'
k =
6 30
k1 =
[]
k2 =
6 30
将ASSIC码字符以32*3的表格输出
>> assic=char(reshape(32:127,32,3)')
assic =
3×32 char 数组
' !"#$%&'()*+,-./0123456789:;<=>?'
'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
'`abcdefghijklmnopqrstuvwxyz{|}~'
总结思考
此章节我们学习了数据类型的种类、奇数阶魔方矩阵的编程、拼接、查找(修改)函数,并应用。我想它会对我们现实生活有帮助。