作业帮 > 综合 > 作业

MATLAB中的删选数据问题和赋值问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 11:23:30
MATLAB中的删选数据问题和赋值问题
a=
1\x091\x090\x090\x090\x090\x091\x091\x091
1\x090\x090\x090\x090\x090\x091\x091\x091
1\x092\x092\x090\x090\x090\x090\x090\x090
3\x090\x093\x093\x093\x093\x094\x092\x092
1\x091\x091\x092\x092\x092\x093\x093\x093
其中每一行代表一个债券的成交量,最后一行表示的是月份,1表示一月份,2表示二月份,3表示三月份
以最后一行为标准,能不能删选出每个月中有数据的个数小于3的债券,并且把当月的所有成交量赋值为0.比如第一行中,前三列(即一月份)只有两个数据,1 1 0,只有两个数据,就将数据改为 0 0 0.
写一个程序,做完后结果为:
0 0 0\x090\x090\x090\x091\x091\x091
0 0\x090\x090\x090\x090\x091\x091\x091
1\x092\x092\x090\x090\x090\x090\x090\x090
0 0 0 3\x093\x093\x094\x092\x092
最后能不能记录改过那些地方的数据
在第二张矩阵中将a中改过相应地方的数据也同时改为0
b=
1\x091\x091\x091\x091\x091\x091\x091
2\x092\x092\x092\x092\x092\x092\x092
3\x093\x093\x093\x093\x093\x093\x093
4\x094\x094\x094\x094\x094\x094\x094
1\x091\x091\x092\x092\x092\x093\x093
改后的结果
0 0 0 1\x091\x091\x091\x091
0 0 0 2\x092\x092\x092\x092
3\x093\x093\x093\x093\x093\x093\x093
0 0 0 4\x094\x094\x094\x094
有点乱,为什么第四行前三列是3 0 3,要改为0呢?
再问: 因为它一月份的(即最后一列是1 1 1)有数据的个数小于3个。删选的时候是以有没有小于3个为前提的
再答: 哦,你意思是不为零的数据个数要大于三
再问: 因为是1 1 2 有三个数据!这个3,不是数值小于3,而是有三个数据的意思,大于0的都算是一个数据,是个数
再答: a=[
1\x091\x090\x090\x090\x090\x091\x091\x091
1\x090\x090\x090\x090\x090\x091\x091\x091
1\x092\x092\x090\x090\x090\x090\x090\x090
3\x090\x093\x093\x093\x093\x094\x092\x092
1\x091\x091\x092\x092\x092\x093\x093\x093];

b=[
1\x091\x091\x091\x091\x091\x091\x091 1
2\x092\x092\x092\x092\x092\x092\x092 2
3\x093\x093\x093\x093\x093\x093\x093 3
4\x094\x094\x094\x094\x094\x094\x094 4
1\x091\x091\x092\x092\x092\x093\x093 3];

z=false(size(a)); %一个逻辑矩阵开始全部是0
c=unique(a(end,:)); %找出月份
for i=1:length(c)
col=(a(end,:)==c(i)); %等于第i个月份的列
row=sum(a(:,col)>0,2)