MATLAB代码 矩阵补0 啊啊啊啊啊啊啊

作者&投稿:逯转 (若有异议请与网页底部的电邮联系)
怎样对矩阵补零 – MATLAB中文论坛~

比如
a = [1 2;3 4;5 6];
复制代码
想要变成4*3的矩阵,只需要
a(4,3) = 0;
复制代码
即可

你取的时候是怎么取的?一个个取的话,就把要取的取一下,不要取的赋值为零就可以了吧

这个其实有个非常简单的做法的
你只要令你的数组的最高维元素值为0就好了;
比如你的矩阵 A=(1,2;3,4;5,6);
要扩充成3X3的,只要令A(3,3)=0即可;
要扩充成8X8的,只要令A(8,8)=0即可;
要扩充成nXn的,只要令A(n,n)=0即可;

这样就好了,不需要编程的O(∩_∩)O~

可以写一个函数来实现 一下为M文件的函数编程内容:
function y=addzeros(x)
[m,n]=size(x);
if m>n;
p=m-n;q=zeros(m,p);y=cat(2,x,q);
else
p=n-m;q=zeros(p,n);y=cat(1,x,q);
end
保存在搜索目录下就可以直接调用了 假定A是你需要补全的矩阵,那么在命令窗口运行:addzeros(A)就可以咯 一劳永逸~!
求采纳哦 有问题446945569

以你给的数据为例:
a=[1 2;3 4;5 6];
a(:,3)=0;

假设A是你的矩阵~~
A=[A;zeros([size(A,1),1])];

QQ1837329143

换个思路解决它,就是将一个长度小的矩阵,放到一个自己定义的长度更大的零矩阵中去,例如:
B=[1,2;3,4;5,6]
A=zeros(3,3)
A(1:3,1:2)=B;
更广泛的应用如下:
A=zeros(5,5);
B=ones(3,3);
A(2:4,2:4)=B;


鞍山市18457463803: MATLAB代码 矩阵补0 啊啊啊啊啊啊啊
尔庆更年: 可以写一个函数来实现 一下为M文件的函数编程内容: function y=addzeros(x) [m,n]=size(x); if m>n; p=m-n;q=zeros(m,p);y=cat(2,x,q); else p=n-m;q=zeros(p,n);y=cat(1,x,q); end 保存在搜索目录下就可以直接调用了 假定A是你需要补全的矩阵,那么在命令窗口运行:addzeros(A)就可以咯 一劳永逸~! 求采纳哦 有问题446945569

鞍山市18457463803: 如何实现matlab将一个矩阵中前几列置为0
尔庆更年: 1、思路:使用布尔数组引用矩阵中所有大于某值的元素,然后将其赋值为0.2、代码:A(A>10)=0;?%将矩阵A中大于10的元素设置为0.3、示例:

鞍山市18457463803: matlab中怎么在序列中均匀补零 比如[1,2,3,4,5]变为[1,0,0,2,0,0,3,0,0,4,0,0,5,0,0] -
尔庆更年: n=15; a=zeros(1,n); b=[1 2 3 4 5]; a(1:3:n)=b

鞍山市18457463803: matlab如何把2维矩阵短的那一维补0? -
尔庆更年: 试试这个 function B = getB(A)B = zeros(length(A)); B(length(A)+1:length(A)*3) = A; if size(A,1) < size(A,2)B = B'; end用法 A=[1 1 1 1; 1 1 1 1]; B = getB(A);或者更直接的 if size(A,1)<size(A,2)B = [zeros(1,size(A,2)); A; zeros(1,size(A,2));]; elseB = [zeros(size(A,1),1) A zeros(size(A,1),1);]; end

鞍山市18457463803: matlab 矩阵每行找到第一个不是0的位置,把前面的0全部删掉,如果不对齐后面可以补0,这个该怎么写呢 -
尔庆更年: %% A是要处理的矩阵 B = zeros(size(A)); for i = 1:size(A, 1) t = A(i,:); t = t(find(t, 1, 'first'):end); B(i,1:length(t)) = t; end B

鞍山市18457463803: 怎样对矩阵补零 – MATLAB中文论坛 -
尔庆更年: 比如 a = [1 2;3 4;5 6]; 复制代码 想要变成4*3的矩阵,只需要 a(4,3) = 0; 复制代码 即可

鞍山市18457463803: 求助:又简单又难 matlab中一个矩阵如何将数值为0的数用上一个数值来替补,程序怎么写?谢谢! -
尔庆更年: b=reshape(a,[1,size(a,1)*size(a,2)]); y=find(b==0); b(y)=b(y-1); a=reshape(b,[size(a,1),size(a,2)]);

鞍山市18457463803: Matlab怎么把矩阵中的0元素删除,产生一个新的矩阵. -
尔庆更年: A = [1 0 2 0 3 4 0; 0 1 0 2 0 3 0; 0 0 0 1 2 0 4 ]; [m,n] = size(A);% 求每行最长非零元素的长度 maxn = max(arrayfun(@(x) sum(A(x,:)~=0),1:m)); R = zeros(m,maxn); for p = 1:m a = A(p,:); a(a==0) = []; w = length(a); R(p,1:w) = a; end RR = 1 2 3 4 1 2 3 0 1 2 4 0

鞍山市18457463803: matlab 怎么在表示image的三维矩阵的边缘补0 -
尔庆更年: 设原矩阵为A:1 2B=zeros(10+2*n,10+2*n,3); B(n+1:n+10,n+1:n+10,:)=A;

鞍山市18457463803: matlab中矩阵把每列最小值变为零 -
尔庆更年: 这段代码可以实现:a=rand(3); aa=a; [b,c]=min(a) for i=1:1:3 a(i,c(i))=0; end-------------aa中是原矩阵,a中是每列最小值清零了的.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网