楼主: linlinjiangxi
10639 6

[问答] matlab中删除满足某条件的某行 [推广有奖]

  • 4关注
  • 1粉丝

初中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
103 点
帖子
13
精华
0
在线时间
22 小时
注册时间
2014-8-29
最后登录
2016-3-1

楼主
linlinjiangxi 学生认证  发表于 2014-9-12 16:24:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求各位大神指导,真的自己不能找到错误了
代码如下:
IndexOfData=num;
[m,n]=size(IndexOfData);
for i=1:m
    for j=1:n
        if IndexOfData(i,j)==-100000
           IndexOfData(i,:)=[];
        end
    end
end

错误显示:
Index exceeds matrix dimensions.

Error in UserData (line 9)
        if IndexOfData(i,j)==-1000

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab matlab

沙发
24578901 在职认证  发表于 2014-9-12 17:05:49
假设行数m为10,当符合条件时就会删除一行,这时候m就会减一,你的i还是10,肯定会报错了。
讲得有点啰嗦了,就是你的矩阵行数是动态变化的,而你的i却未能跟着行数变
已有 1 人评分论坛币 学术水平 收起 理由
Xaero + 60 + 1 精彩帖子; 是这个道理。

总评分: 论坛币 + 60  学术水平 + 1   查看全部评分

藤椅
Xaero 发表于 2014-9-12 20:57:25
一句话就可以搞定的:
num(any(num==-100000,2))

运行前先备份数据

板凳
linlinjiangxi 学生认证  发表于 2014-9-13 14:05:47
Xaero 发表于 2014-9-12 20:57
一句话就可以搞定的:
num(any(num==-100000,2))
谢谢,已解决~用了一个比较纠结的方法。我一会儿去试试这个

报纸
兮墨 发表于 2017-5-11 22:51:42
能问一下 你最后用的什么方法解决的吗  我现在也遇到了

地板
hzcmaster 发表于 2017-5-12 10:19:40
兮墨 发表于 2017-5-11 22:51
能问一下 你最后用的什么方法解决的吗  我现在也遇到了
[location1,location2]=find(num==-100000);
row=unique(location1);
num(row,:)=[];

7
beibei2004213 发表于 2017-5-12 10:21:34
谢谢....................................

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 04:27