
1修改了一下,变动不大。
function x=Gauss_(A,b)
A=[10,-7,0;5,-1,5;-3,2,6];
b=[7;6;4]; %%%%%应该是列矩阵啊
n=length(b);
for k=1:n-1 %……消去过程……
if A(k,k)==0
disp('错误信息')
break;
end
index = [k+1:n];%用向量比用循环好
m = -A(index,k)/A(k,k); %提前定义一个较短的变量,相当于你的A(i,k)=A(i,k)/A(k,k);
A(index,index) = A(index,index) + mA(k,index);%矩阵A消元
b(index) = b(index) + mb(k);%矩阵b消元
end
x = zeros(n,1);%提前预置一个变量的位置,以提高运算速度
x(n) = b(n)/A(n,n);%……回代过程……
for i = n-1:-1:1
x(i) = ( b(i) - A(i,[i+1:n])x([i+1:n]) )/A(i,i);%还是写在一起吧,比较简捷
end
x
%%%%%%%%%结束啦
运行结果:
x =
00000
-10000
10000
2验证
>> A=[10,-7,0;5,-1,5;-3,2,6];
>> b=[7;6;4];
>> X=A\b
X =
0
-1
1
3验证
>> Gauss_(A,b)
x =
00000
-10000
10000
function B=distanceab()
[file,path]=uigetfile({'xls','Excel文档'},'选择文件');
if file==0
return;
end
A=xlsread([path file]);n=size(A,1);
if n>362
msgbox('数据量太大,excel将无法保存!','警告');
end
B=[];h=waitbar(0,'数据处理中,请等待');
for i=1:(n-1)
j=(i+1):n;
B=[B;[repmat(A(i,:),n-i,1),A(j,:),sqrt(sum((repmat(A(i,:),n-i,1)-A(j,:))^2,2))]];
waitbar(i/(n-1),h,'数据处理中,请等待');
end
waitbar(1,h,'数据处理完毕!');
pause(5);
delete(h);pause(eps);
if n>362
return;
end
[file,path]=uiputfile({'xls','Excel文档'},'输出结果');
if file
xlswrite([path file],B,strcat('A1:E',num2str(size(B,1))));
else
msgbox('你放弃了保存','消息框');
end
%%%%没有用到内部函数!!!
PrimeNumber=[2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97];
k=1;
for i=2:100
temp=i(i-1)-1;
for j=1:length(PrimeNumber)
if temp==PrimeNumber(j)
Result(k,1)=i; %亲密数对中的第一个数
Result(k,2)=i-1; %亲密数对中的第二个数
Result(k,3)=temp; %亲密素数
k=k+1;
break;
end
end
end
% 计算亲密素数和
SumPrime=0;
for i=1:k-1
SumPrime=SumPrime+Result(i,3);
end
% 数对个数
disp('数对个数');disp(k-1);
% 亲密素数和
disp('亲密素数和');disp(SumPrime);
给你看看某个大神写的音乐合成的一个小程序,是个最炫民族风的音乐。你找找需要哪些函数吧。
不好意思的是忘记从哪转的了……sorry
% Most shining national wind//最炫民族风 on Matlab
% The Modification is from "canon", not by me
fs = 44100; % sample rate
dt = 1/fs;
T16 = 0125;
t16 = [0:dt:T16];
[temp k] = size(t16);
t4 = linspace(0,4T16,4k);
t8 = linspace(0,2T16,2k);
[temp i] = size(t4);
[temp j] = size(t8);
% Modification functions
mod4=(t4^4)exp(-30(t4^05));
mod4=mod4(1/max(mod4));
mod8=(t8^4)exp(-50(t8^05));
mod8=mod8(1/max(mod8));
mod16=(t16^4)exp(-90(t16^05));
mod16=mod16(1/max(mod16));
f0 = 21468; % reference frequency
ScaleTable = [2/3 3/4 5/6 15/16
1 9/8 5/4 4/3 3/2 5/3 9/5 15/8
2 9/4 5/2 8/3 3 10/3 15/4 4
1/2 9/16 5/8];
% 1/4 notes
do0f = mod4cos(2piScaleTable(21)f0t4);
re0f = mod4cos(2piScaleTable(22)f0t4);
mi0f = mod4cos(2piScaleTable(23)f0t4);
fa0f = mod4cos(2piScaleTable(1)f0t4);
so0f = mod4cos(2piScaleTable(2)f0t4);
la0f = mod4cos(2piScaleTable(3)f0t4);
ti0f = mod4cos(2piScaleTable(4)f0t4);
do1f = mod4cos(2piScaleTable(5)f0t4);
re1f = mod4cos(2piScaleTable(6)f0t4);
mi1f = mod4cos(2piScaleTable(7)f0t4);
fa1f = mod4cos(2piScaleTable(8)f0t4);
so1f = mod4cos(2piScaleTable(9)f0t4);
la1f = mod4cos(2piScaleTable(10)f0t4);
tb1f = mod4cos(2piScaleTable(11)f0t4);
ti1f = mod4cos(2piScaleTable(12)f0t4);
do2f = mod4cos(2piScaleTable(13)f0t4);
re2f = mod4cos(2piScaleTable(14)f0t4);
mi2f = mod4cos(2piScaleTable(15)f0t4);
fa2f = mod4cos(2piScaleTable(16)f0t4);
so2f = mod4cos(2piScaleTable(17)f0t4);
la2f = mod4cos(2piScaleTable(18)f0t4);
ti2f = mod4cos(2piScaleTable(19)f0t4);
do3f = mod4cos(2piScaleTable(20)f0t4);
blkf = zeros(1,i);
% 1/8 notes
do0e = mod8cos(2piScaleTable(21)f0t8);
re0e = mod8cos(2piScaleTable(22)f0t8);
mi0e = mod8cos(2piScaleTable(23)f0t8);
fa0e = mod8cos(2piScaleTable(1)f0t8);
so0e = mod8cos(2piScaleTable(2)f0t8);
la0e = mod8cos(2piScaleTable(3)f0t8);
ti0e = mod8cos(2piScaleTable(4)f0t8);
do1e = mod8cos(2piScaleTable(5)f0t8);
re1e = mod8cos(2piScaleTable(6)f0t8);
mi1e = mod8cos(2piScaleTable(7)f0t8);
fa1e = mod8cos(2piScaleTable(8)f0t8);
so1e = mod8cos(2piScaleTable(9)f0t8);
la1e = mod8cos(2piScaleTable(10)f0t8);
tb1e = mod8cos(2piScaleTable(11)f0t8);
ti1e = mod8cos(2piScaleTable(12)f0t8);
do2e = mod8cos(2piScaleTable(13)f0t8);
re2e = mod8cos(2piScaleTable(14)f0t8);
mi2e = mod8cos(2piScaleTable(15)f0t8);
fa2e = mod8cos(2piScaleTable(16)f0t8);
so2e = mod8cos(2piScaleTable(17)f0t8);
la2e = mod8cos(2piScaleTable(18)f0t8);
ti2e = mod8cos(2piScaleTable(19)f0t8);
do3e = mod8cos(2piScaleTable(20)f0t8);
blke = zeros(1,j);
% 1/16 notes
do0s = mod16cos(2piScaleTable(21)f0t16);
re0s = mod16cos(2piScaleTable(22)f0t16);
mi0s = mod16cos(2piScaleTable(23)f0t16);
fa0s = mod16cos(2piScaleTable(1)f0t16);
so0s = mod16cos(2piScaleTable(2)f0t16);
la0s = mod16cos(2piScaleTable(3)f0t16);
ti0s = mod16cos(2piScaleTable(4)f0t16);
do1s = mod16cos(2piScaleTable(5)f0t16);
re1s = mod16cos(2piScaleTable(6)f0t16);
mi1s = mod16cos(2piScaleTable(7)f0t16);
fa1s = mod16cos(2piScaleTable(8)f0t16);
so1s = mod16cos(2piScaleTable(9)f0t16);
la1s = mod16cos(2piScaleTable(10)f0t16);
tb1s = mod16cos(2piScaleTable(11)f0t16);
ti1s = mod16cos(2piScaleTable(12)f0t16);
do2s = mod16cos(2piScaleTable(13)f0t16);
re2s = mod16cos(2piScaleTable(14)f0t16);
mi2s = mod16cos(2piScaleTable(15)f0t16);
fa2s = mod16cos(2piScaleTable(16)f0t16);
so2s = mod16cos(2piScaleTable(17)f0t16);
la2s = mod16cos(2piScaleTable(18)f0t16);
ti2s = mod16cos(2piScaleTable(19)f0t16);
do3s = mod16cos(2piScaleTable(20)f0t16);
blks = zeros(1,k);
% Melody by Schau_mal
part0 = [mi1f la0e la0e do1f mi1f
re1e re1s mi1s re1e do1e re1e do1e la0f
mi1f la0e la0e do1f mi1f
so1e re1s mi1s re1e do1e re1e do1e ti0e so0e
mi1f la0e la0e do1f mi1f
re1e re1s mi1s re1e do1e re1e do1e la0e so0e
mi1f la0e la0e do1f mi1f
so1e mi1e blkf blkf blkf
];
part1 = [la0f la0e so0e la0f la0e do1e
do1f re1e do1e la0f la0f
do1f do1e so0e do1e re1e mi1e so1e
so1e mi1e re1f mi1f mi1f
la1e la1e la1e so1e mi1e mi1f do1e
la0e la0e la0e mi1e re1s mi1s re1e re1f
mi1e mi1e so1e mi1e re1e mi1e re1e do1e
la0f so0f la0f la0f
];
part2 = [mi1e mi1e so1e mi1e mi1e so1e so1e la1e
do2e la1e so1f la1s do2s la1e la1f
la0f la0e so0e la0f do1f
re1e mi1s re1s do1e re1e mi1f mi1f
la0e la1e la1e so1e re1e mi1s re1s do1e re1e
mi1f mi1f blke blke blkf
do1e la0e la0e do1e re1f so0e so0e
mi1e so1e mi1e re1e do1f do1f
la0e do1e re1e mi1e re1e do1e so0e mi0e
la0f la0f blke blke blkf
];
part3 = [la0f la0e so0e la0f do1f
re1e mi1s re1s do1e re1e mi1f mi1f
la0e la1e la1e so1e re1e mi1s re1s do1e re1e
mi1f mi1f blke blke blkf
do1e la0e la0e do1e re1f so0e so0e
mi1e so1e mi1e re1e do1f do1e do1e
la0e do1e re1e mi1e so1e mi1e mi1e so1e
la1f la1f la1f la1f
];
part4 = [la1e la1s la1s la1e la1e la1e la1s so1s mi1e re1e
re1e re1s re1s mi1e mi1s so1s mi1e mi1s re1s do1e do1s la0s
la0f la0e so0e la0f la0e do1e
re1e mi1s re1s do1e re1e mi1f mi1f
la1e so1e mi1e re1e so1e mi1e re1e do1e
do1f do1f la0s do1s re1s mi1s re1s do1s la0s do1s
];
part5 = [do2e do2s do2s la1e la1s la1s so1e so1s so1s mi1e mi1s mi1s
re1e mi1s re1s do1e la0s so0s la0s so0s do1s re1s mi1s so1s la1s re2s
do2f do2f blks blks blks blks do1e re1e
mi1f mi1f mi1f so1e mi1e
la1f la1f la1e do1e so1e mi1e
re1f re1e re1s re1s re1e re1e do1e re1e
mi1f mi1e mi1s mi1s mi1e re1s do1s ti0e do1s re1s
mi1f mi1f mi1f so1e mi1e
do2f la1f la1f la1e do1e
re1f so1f so1f la1f
ti1f ti1f ti1f ti1f
];
part6 = [blkf blkf mi1e so1e mi1e so1e
mi1f la0e la0s la0s do1f la0e mi1s la0s
do1e do1s do1s re1e do1s re1s mi1f mi1f
mi1f la0e la0s la0s so1f re1e re1s re1s
mi1f mi1f mi1s re1s do1s la0s mi0s re0s mi0s so0s
do1f la0e la0s la0s re1f so0e so0s so0s
mi0f so0e so0s so0s do1f do1f
la0f do1e do1s la0s mi1e mi1s mi1s re1e re1s mi1s
];
% Combination, v1 is complete version, v2 is simple version
v1 = [part0 part1 part1 part2 part3 part4 part0 part1 part1 part2 part3 part5 part3 part6 part3];
v2 = [part0 part1 part1 part2 part3 part5 part3 part6 part3];
% Let's rock ^_^
s = v1;
s = s/max(s);
sound(s,fs);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1、matlab播放音乐是由sound(Y,fs,bits)函数完成的,该函数的3个参数代表输入信号、采样率、比特率。先说采样率fs的设置,人耳能够听到的声音范围是20~20000Hz。
2、根据采样定理fs只需要大于40000即可。此处采样率的设置采用了MP3的标准,即fs=441k再说输入信号Y,Y一般是一个正弦波,如Asin(2piwt)。其中A控制着声音的大小,w控制着声音的高低,t的范围控制着声音的长短,所以理论上利用这个公式可以发出任何声音,只是不能控制音色和音质比特率采用默认值即可。
3、于是用下面的公式就可以播放出标准音la:(座机电话提示音就是la,可以用来调吉他)
fs=44100;
t=0: 1/fs: 05;
la = sin(2pi440t); (下文介绍440是怎么来的)
sound(la, fs)
4、下面介绍一下简单乐理:
音高和频率是指数的关系,它们满足下面的公式,其中p是音高,f是频率
标准音la,即钢琴的A4键,定义为p=69。音高每上升一个半音,p加1。
如上图所示,从C4到B4分别对应着do re mi fa sol la xi,它们的p值分别为 60 62 64 65 67 69 71,注意中间有黑键,你也可以根据下表来查询某个音的频率。
1、在matlab *** 作界面,word表格不可能调用,尽量用excel表格。
2、matlab使用excel表格时,可又通过在界面 *** 作窗口的左上方,用创建新表格的方式创建一个空表格,再将excel表格调入即可转化为matlab可使用的数据矩阵。
3、从问题上看,x,y两个变量的维数应该一致,是一个n1的n列1行的矩阵。
4、matlab关于函数式的表达,与代数式完全一样:a=((1/y)^(1/2))x
5、如果x y两个变量的取值是正交方式,那么就要引入循环变量:for i=1:n,j=1:n,上式变为
aij==((1/yij)^(1/2))xij
6、在matlab窗口下,可以先编程序,也可一条一条命令输入。如果是新手,建议一条一条输入,以便检查每一条的语法是否正确。
以上就是关于关于matlab的一个小程序,谁能给一点指点,愿意将我尽有的一点分都奉送全部的内容,包括:关于matlab的一个小程序,谁能给一点指点,愿意将我尽有的一点分都奉送、MATLAB编写一段小程序,帮忙、用matlab写个小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)