Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵

这篇具有很好参考价值的文章主要介绍了Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵

 现在我有的是一个50行,1832列的矩阵,但是其每一列上有效的数字并不多,且不相等,其余都是没用的0元素。那么如何删除矩阵中的零元素,重新整理不等行的矩阵?先上结论。

结论:最方便的还是转化成Cell矩阵,因为只有这样,每一列可以存储不等长度的(自由的)数据。

Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵

 

过程中,第一,可以先使用logical进行判断筛选,再用循环进行小的搜寻。

Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵

 bea=beta(find(beta~=0));

这段代码会生成上图所示效果,即将所有非零元素,以一整列的形式呈现出来,可能有的小伙伴需要非零元素,或是想统计其个数的话,可以直接使用了就,那么,如果像我一样,想要把矩阵再重新还原回原来的行数和列数(形状)的话,那么就还需要一些操作,再用小的循环进行一些整理,或用reshape生成(偶听说过但不熟悉)。

第二,可以一开始就用循环,对非零元素进行搜寻,并存储到一个新的矩阵中。

可以用两个for循环,对矩阵中的每一个元素进行判断(其是否非零),然后再将它们存储到一个新的矩阵中去。这种方法可能工作量比前一种要大,但是很直观。

完整代码文章来源地址https://www.toymoban.com/news/detail-515672.html

  bea=beta(find(beta~=0));
[qq]=find(bea==1);
    k=1;
for j=1:n1
    if j==n1
        p=qq(j);
        beatt=bea(p:end,1);
            beta_trans1{1,k}=beatt;
    else
p=qq(j);
q=qq(j+1);
beatt=bea(p:(q-1),1);
    beta_trans1{1,k}=beatt;
    k=k+1;
    end
end

for i=1:n1
    kk=sta1(i);
    x_store=x1(1:kk,i);
    x2{1,i}=x_store;
end
% 上下翻转矩阵
for i=1:n1
    beta_trans1{1,i}=flipud(beta_trans1{1,i});
    x2{1,i}=flipud(x2{1,i});
end

到了这里,关于Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • matlab查找元素在矩阵中的位置

    find ismember 问题在于如果B是A的真子集时,如何方便高效判断B是否为A的一部分, 笔者给出如下方案. 如果B为A的重复子部分,需对结果进行保存.欢迎大家批评指正:

    2024年02月11日
    浏览(34)
  • Matlab | 去除数组或矩阵中的重复元素

    感谢@向着阳光生长的男孩的指正!有更好的方法,只要一句代码就搞定了。把三种方法整理了,一并放在下面了。 运行结果 ———————————————————————————————————————————————————————————

    2024年02月11日
    浏览(28)
  • Matlab: 删除矩阵中的行或列

    在Matlab中,您可以使用简单的代码来删除矩阵中的行或列。删除行或列对于数据预处理和矩阵操作非常有用。本文将向您展示如何使用Matlab来实现这一操作。 删除行: 要删除矩阵中的特定行,您可以使用Matlab中的索引操作符来选择要保留的行。以下是删除行的示例代码:

    2024年02月04日
    浏览(56)
  • matlab如何删除矩阵某行或列?

    要删除矩阵某一行或某一列,只需要将某一行或某一列赋予一个空矩阵即可。 例如: 先创建一个4*4矩阵:x=eye(4),得到  之后输入: x(2,:)=[]后得到  能看出来第二行没了。 如果是删除第二列,就是x(:,2)=[]  

    2024年02月11日
    浏览(39)
  • R如何提取矩阵中的元素

    1.创建一个矩阵 matrix1 - matrix(data=c(1,4,9,16,25,36), 2, 3) 2.提取第一行第二列的元素“9” matrix1[1,2] 其他元素同理 3.提取第一行的全部元素 matrix1[1:] 其他行的元素同理 4.提取第一列的全部元素 matrix1[,1] 其他列的元素同理

    2024年02月15日
    浏览(25)
  • 【重新定义matlab强大系列三】MATLAB清洗离群数据(查找、填充或删除离群值)

    🔗 运行环境:matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥  推荐专栏:《算法研究》 ####  防伪水印—— 左手の明天 #### 💗 大家好🤗🤗🤗,我是 左手の明天 !好久不见💗 💗今天开启新的系列—— 重新定义matlab强大系列 💗 📆 

    2024年02月04日
    浏览(30)
  • matlab删除相同元素的行(列)

    删除矩阵元素完全相同的行 函数: 效果: 将第二行(全是1)删除 删除矩阵元素完全相同的列 函数: 效果: 将第二列(全是1)删除

    2024年02月02日
    浏览(26)
  • MATLAB:矩阵 矩阵的秩,矩阵的逆矩阵,矩阵的转置,矩阵每个元素减一,矩阵元素变换

    1.矩阵 A=[1,2,3;4,5,6;7,8,9]/A=[1 2 3;4 5 6;7 8 9](分号与空格用于区分每行之间的元素,分号区分行)   2.矩阵每个元素减一 B=A-1 3.矩阵元素变换 需要某一行或者某一列为0,可以用“:”代表一行 如A(:,3)代表第三列赋值为零    A( 3,:)代表第三行赋值为零     4.矩阵的秩

    2024年02月11日
    浏览(36)
  • matlab1.5—矩阵元素的引用

    1.下标引用矩阵的元素 这只表示A(3,2)这个赋值了200,不会影响矩阵其他数。 若如下所示,行与列数都超过矩阵的行与列数,在matlab中也是可行的,matlab将自动扩展原来的矩阵。并将扩展的,没有赋值的元素赋为0. 2.通过序号来引用矩阵元素 在matlab中,矩阵元素按列来进行存储

    2024年02月08日
    浏览(30)
  • MATLAB基础操作5——矩阵元素的引用

    下标必须为正整数,且要用圆括号括起来。 在MATLAB中,矩阵元素按列存储,即先存储第一列元素,然后存储第二列元素,以此类推,直到最后一列。矩阵元素的序号就是矩阵元素在内存中的排列顺序。 序号与下标是一一对应的,若矩阵A为的矩阵,矩阵元素A(a, b)的序号为  。

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包