Matlab中 求的是矩阵d中删除不等于2的列d=[2 3 4 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 7 3 2 2 2 2 2 2 2 2 2 9 1 2 2 2 2 3 4 2 2 2 2 2 2 2];for m=1:length(d) if d(m)~=2 d(m)=[]; endend出现如下错误:? Index exceeds matr
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 11:52:26
Matlab中 求的是矩阵d中删除不等于2的列d=[2 3 4 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 7 3 2 2 2 2 2 2 2 2 2 9 1 2 2 2 2 3 4 2 2 2 2 2 2 2];for m=1:length(d) if d(m)~=2 d(m)=[]; endend出现如下错误:? Index exceeds matr
Matlab中 求的是矩阵d中删除不等于2的列
d=[2 3 4 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 7 3 2 2 2 2 2 2 2 2 2 9 1 2 2 2 2 3 4 2 2 2 2 2 2 2];
for m=1:length(d)
if d(m)~=2
d(m)=[];
end
end
出现如下错误:? Index exceeds matrix dimensions.
为什么?
Matlab中 求的是矩阵d中删除不等于2的列d=[2 3 4 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 7 3 2 2 2 2 2 2 2 2 2 9 1 2 2 2 2 3 4 2 2 2 2 2 2 2];for m=1:length(d) if d(m)~=2 d(m)=[]; endend出现如下错误:? Index exceeds matr
因为循环时一遇到非2的元素就删除了,结果d变短了,而循环的长度还按原来的长度进行索引,所以超出了矩阵长度.
d(find(d~=2)) = []
或者,找出有2的元素个数,直接新建相等长度元素都为2的矩阵.
d = 2*ones(1,length(find(d=2)))
222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222