求一个MATLAB 矩阵扩展函数~~~~~~解决再加50分!
作者&投稿:钟离厕 (若有异议请与网页底部的电邮联系)
imageex(limage,heightx2,widthx2);
A=size(height,width);
B=zeros(m+h*2,n+w*2); %创建个扩展大小的0矩阵
B(h+1:h+m,w+1:w+n)=A(m,n); %将原矩阵填入中间位置
B(1:h,w+1:w+n)=A(1,:);%大矩阵的上面扩展行赋值为原矩阵的第一行
B(h+m+1:h*2+m)=A(m,:);%大矩阵的下面扩展行赋值为原矩阵的最后一行
B(h+1:h+m,1:w)=A(:,1);%大矩阵的左面扩展列赋值为原矩阵的最左一列
B(h+1:h+m,w+n+1:n+w*2)=A(:,n)%大矩阵的右面扩展列赋值为原矩阵的最右一列
%其中height替换为m
%width替换为n
%heightx2替换为h
%widthx2替换为w
lambda = [你的那个列矩阵];k = 4; l = 4; % 那个j=4应该是l吧sum_lamda = sum(lambda(1:l));W = - sum((lambda(1:k)/sum_lamda) .* log(lambda(1:k)/sum_lamda));disp(W);
imageex(limage,heightx2,widthx2);A=size(height,width);
B=zeros(m+h*2,n+w*2); %创建个扩展大小的0矩阵
B(h+1:h+m,w+1:w+n)=A(m,n); %将原矩阵填入中间位置
B(1:h,w+1:w+n)=A(1,:); %大矩阵的上面扩展行赋值为原矩阵的第一行
B(h+m+1:h*2+m)=A(m,:); %大矩阵的下面扩展行赋值为原矩阵的最后一行
B(h+1:h+m,1:w)=A(:,1); %大矩阵的左面扩展列赋值为原矩阵的最左一列
B(h+1:h+m,w+n+1:n+w*2)=A(:,n) %大矩阵的右面扩展列赋值为原矩阵的最右一列
%其中height替换为m
%width替换为n
%heightx2替换为h
%widthx2替换为w
pascal(n)是矩阵实验室(Matrix Laboratory)MATLAB中的命令,利用pascal()命令可以在矩阵实验室中方便的得到任意阶帕斯卡矩阵。设A为帕斯卡矩阵,则在MATLAB命令窗口中输入A=pascal(n),n为正整数,可得到阶数为n的帕斯卡矩阵。
const max=100;
var a:array[1..max,1..max]of longint;
n,i,j,sum,m,mm:longint;
begin
readln(n);
i:=1;j:=1;m:=n;mm:=1;
while sum<>n*n do begin
for i:=mm to m do begin
inc(sum);
a[i,j]:=sum;
if sum=n*n then break;
end;
for j:=mm+1 to m do begin
inc(sum);
a[i,j]:=sum;
if sum=n*n then break;
end;
for i:=m-1 downto mm do begin
inc(sum);
a[i,j]:=sum;
if sum=n*n then break;
end;
for j:=m-1 downto mm+1 do begin
inc(sum);
a[i,j]:=sum;
if sum=n*n then break;
end;
dec(m);inc(mm);
end;
for j:=1 to n do begin
for i:=1 to n do write(a[i,j]:4);
writeln;
end;
readln;
end.
function B = matrixexpand(A)
% 矩阵扩展
[m,n] = size(A);
B = zeros(m + 2,n + 2);
B(2 : m + 1,2 : n + 1) = A;
B(1,:) = B(2,:);
B(m + 2,:) = B(m + 1,:);
B(:,1) = B(:,2);
B(:,n + 2) = B(:,n + 1);
B([1,m + 2,1,m + 2],[1,1,n + 2,n + 2]) = 0;
以上是函数,保存为.m文件,再在matlab中运行
>> A = [1 2;3 4];
>> B = matrixexpand(A)
B =
0 1 2 0
1 1 2 2
3 3 4 4
0 3 4 0
凤聂五灵: imageex(limage,heightx2,widthx2); A=size(height,width); B=zeros(m+h*2,n+w*2); %创建个扩展大小的0矩阵 B(h+1:h+m,w+1:w+n)=A(m,n); %将原矩阵填入中间位置 B(1:h,w+1:w+n)=A(1,:); %大矩阵的上面扩展行赋值为原矩阵的第一行 B(h+m+1...
阜新蒙古族自治县13852243844: matlab中如何对一个矩阵扩展下啊? - ?
凤聂五灵: 用法:B = imresize(A,m) B = imresize(A,m,method) B = imresize(A,[mrows ncols],method) B = imresize(...,method,n) B = imresize(...,method,h) imrersize函数使用由参数method指定的插值运算来改变图像的大小.method的几种可选值: book....
阜新蒙古族自治县13852243844: 写出一个matlab的函数使得调用此函数,x可用矩阵带入,得出f(x)为同阶矩阵设f=1/[(x - 2)^2+0.1]+1/[(x - 3)^3+0.1] - ?
凤聂五灵:[答案] function y=f(x) y=1./[(x-2).^2+0.1]+1./[(x-3).^3+0.1];
阜新蒙古族自治县13852243844: matlab 中如何用矩阵编辑器将一个3*3的矩阵扩充成4*5的矩阵 - ?
凤聂五灵: A=rand(3) 然后打开编辑器. 在A(4,5)里面输入0 就会自动扩展了.
阜新蒙古族自治县13852243844: 【matlab】编写一个函数生成矩阵 - ?
凤聂五灵: function r = sequint(a,b) i = 1:a*b; r = reshape(i,a,b);
阜新蒙古族自治县13852243844: matlab 如何输出矩阵 - ?
凤聂五灵: a %注意变量a后面没有“;”号,即可输出disp(a) Matlab常用生成矩阵函数: 1. zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) 2. ones(m,n) 生成一个 m 行 n 列的元素全为 1 的矩阵, 当m=n 时可写为 ones(n) 3. eye(m,n) 生...
阜新蒙古族自治县13852243844: matlab 如何算矩阵函数? 如A=[ 2 0 0 1 1 1 1 - 1 3 ] 怎么求 exp(A) sin(A) ? - ?
凤聂五灵: 用funm函数计算矩阵函数. 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>> A=[ 2 0 0; 1 1 1; 1 -1 3 ]; >> funm(A, @exp)ans = 7.3891 -0.0000 -0.00007.3891 0.0000 7.38917.3891 -7.3891 14.7781>> funm(A, @sin)ans = 0.9093 -0.0000 0.0000-0.4161 1.3254 -0.4161-0.4161 0.4161 0.4932
阜新蒙古族自治县13852243844: matlab怎么把矩阵作为函数参数传递进去 - ?
凤聂五灵: Matlab 由状态方程求系统传递函数矩阵代码:syms s GG gg; A=[0 1 0;0 0 1;-3 -1 -2]; B=[1 0; 0 1;1 1]; C=[1 1 1]; GG=C*inv(s*eye(3)-A)*B; gg=simplify(GG);结果唯一如下: [ (2*s^2-1)/(s^3+2*s^2+s+3), s*(3+2*s)/(s^3+2*s^2+s+3)]
阜新蒙古族自治县13852243844: 写出一个matlab的函数使得调用此函数,x可用矩阵带入,得出f(x)为同阶矩阵 - ?
凤聂五灵: function y=f(x) y=1./[(x-2).^2+0.1]+1./[(x-3).^3+0.1];
阜新蒙古族自治县13852243844: matlab如何将矩阵带入自定义的函数计算 - ?
凤聂五灵: 既然是函数,就有输入,建立一个m文件叫tutex2.m,内容如下 function = tutex2(radius) area=pi*r^2; volume=(4/3)*pi*r^3; fprintf('The radius is %12.5f\n',r) fprintf('The area of a circle is %12.5f\n',area) fprintf('The volume of a sphere is %12.5f\n',volume) end 保存后,在命令行输入 = tutex2(10.0); 可以得到计算结果