
3-1
a=inline('sin(x)/(1+3*x+x*x)','x')
a =
内联函数:
a(x) = sin(x)/(1+3*x+x*x)
>> a(pi)
ans =
6.0344e-18
>> a(0)
3-2

3-3
脚本M函数
function s=inve(x)
a=num2str(x);
s=0;
for i=1:length(a)
for j=1:length(a)-i
if a(i)>a(i+j)
s=s+1;
end
end
end
end
结果
>> inve(84723536)
ans =
16
>> inve(52397899)
ans =
4
>>
3-4
M文件
clear
clc
a=input('请输入a');
min1 = min(min(a));
max1 = max(max(a));
[x y]= find(a==min(min(a)));
[w z]= find(a==max(max(a)));
disp(['找到最小元素是',num2str(min1),'对应位置是',num2str(x),', ',num2str(y)])
disp(['找到最大元素是',num2str(max1),'对应位置是',num2str(w),', ',num2str(z)])
命令行输入
请输入a[1:3;4:6;7:9]
找到最小元素是1对应位置是1, 1
找到最大元素是9对应位置是3, 3
3-5
A = 4×3
0 1 1
2 3 2
1 3 2
4 2 2
M = median(A)
M = 1×3
1.5000 2.5000 2.0000
对于每一列,中位数值在排列顺序上位于中间的两个数值的均值。
3-7
% This is program for create a matrix of odd order magic
clear
clc
n= input('please input a odd number.\n');
if mod(n,2)==0
disp('input number must be odd.');
return;
end
n1=2*n-1;m=(n-1)/2;
A=zeros(n1);
V=zeros(n,n);
%设置顺序数矩阵
for i=1:n
for j=1:n
V(i,j)=(i-1)*n+j;
end
end
%在A矩阵内,填写m+1条上对角线
for k=1: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
%在A矩阵内,填写m条下对角线
for k=m+2:n
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
%行列叠加填数
Bu=A(1:m,:);Bd=A((n1-m+1):n1,:);
Bl=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)+Bl;
M=A(m+1:(n1-m),m+1:(n1-m));
disp(M);
命令行
please input a odd number.
5
11 24 7 20 3
4 12 25 8 16
17 5 13 21 9
10 18 1 14 22
23 6 19 2 15
3-8
for x=2:1100
x=int64(x);
count=0;
for i=1:x
if x%i==0
count=count+1;
end
end
if(count==2)
disp(x);
end
end
本文深入探讨了MATLAB编程技巧,包括内联函数定义与使用、脚本M函数编写、矩阵操作与中位数计算,以及生成奇数阶魔方矩阵的程序实现。通过具体实例,展示了如何在MATLAB中进行数值计算、逻辑处理和复杂算法设计。
9115

被折叠的 条评论
为什么被折叠?



