24小时热门版块排行榜    

查看: 1746  |  回复: 4

CXC_小草

银虫 (正式写手)

[求助] matlab 处理自变量x的范围 已有2人参与

中文大意是这样的:有一个数值矩阵的表格,假设有1000行,每一行的第3列的数从上到下是按顺序从小到大排列的。从0开始到一个比较大的数。
a = importdata('data.mat');
c = a;
我定义了一个自变量x:
x = 1/3:1e-4:1000/3;
我想取所有a即data.mat里面的第三列的数在x-25到x+25之间的所有行,因为这个数据行文件是跟着x在变的,
b1 = x+25;
if x<=25                                                
        b = c(c(:,3)<b1,;
else
        b2 = x-25;
        b = c(c(:,3)>b2,;
        b = b(b(:,3)<b1,;
end
这样提示“变量‘x’可能是由非标量运算符设置的”,同时我感觉b = c(c(:,3)<b1,;和b = c(c(:,3)>b2,;        b = b(b(:,3)<b1,;这样写也是不对的,求大神指点,感谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

googon

木虫 (著名写手)


【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
CXC_小草: 金币+5, 有帮助, 重在参与 2020-11-11 11:52:58
很显然的你X是一个矩阵嘛,你自己在前面已经定义了,这个问题要用矩阵法就得先把位置找出来,不然就用循环解决。如果有用,麻烦关注一下matlab爱好者,谢谢

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

2楼2020-11-10 23:46:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CXC_小草

银虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by googon at 2020-11-10 23:46:51
很显然的你X是一个矩阵嘛,你自己在前面已经定义了,这个问题要用矩阵法就得先把位置找出来,不然就用循环解决。如果有用,麻烦关注一下matlab爱好者,谢谢

你好,很感谢回复,我的数据文件很大,好几百万行,我后面都要用到该范围内的数据计算,我知道有种表示方法就是a()来表示,但是如果就是要筛选出来与x的值相关的x-25到x+25之间的值,有没有好的表示方法,能给个建议或者您给指点一下,用一个语句,我刚学matlab,小菜一枚,很是无助,感谢,期待您的回复。
3楼2020-11-11 00:04:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hollya27

至尊木虫 (文坛精英)

Katsuragi Megumi

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
CXC_小草: 金币+5, ★★★★★最佳答案, 10分 2020-11-11 11:53:25
b=a(a(:,3)>x-25 & a(a(:,3)<x+25), : )

发自小木虫IOS客户端
4楼2020-11-11 01:38:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hollya27

至尊木虫 (文坛精英)

Katsuragi Megumi

引用回帖:
4楼: Originally posted by hollya27 at 2020-11-11 01:38:31
b=a(a(:,3)&gt;x-25 &amp; a(a(:,3)&lt;x+25), : )

b=a(a(:,3)>x-25 & a(:,3)<x+25), : )

发自小木虫IOS客户端
5楼2020-11-11 05:51:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 CXC_小草 的主题更新
信息提示
请填处理意见