matlab 处理自变量x的范围
中文大意是这样的:有一个数值矩阵的表格,假设有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,;这样写也是不对的,求大神指点,感谢! 返回小木虫查看更多
今日热帖
很显然的你X是一个矩阵嘛,你自己在前面已经定义了,这个问题要用矩阵法就得先把位置找出来,不然就用循环解决。如果有用,麻烦关注一下matlab爱好者,谢谢
你好,很感谢回复,我的数据文件很大,好几百万行,我后面都要用到该范围内的数据计算,我知道有种表示方法就是a()来表示,但是如果就是要筛选出来与x的值相关的x-25到x+25之间的值,有没有好的表示方法,能给个建议或者您给指点一下,用一个语句,我刚学matlab,小菜一枚,很是无助,感谢,期待您的回复
,
b=a(a(:,3)>x-25 & a(a(:,3)<x+25), : )