Matlab中 求的是矩阵d中删除不等于2的列
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 09:56:14
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.
为什么?
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.
为什么?
因为循环时一遇到非2的元素就删除了,结果d变短了,而循环的长度还按原来的长度进行索引,所以超出了矩阵长度.
d(find(d~=2)) = []
或者,找出有2的元素个数,直接新建相等长度元素都为2的矩阵.
d = 2*ones(1,length(find(d=2)))
再问: a=[80 82 85 70 72 70 66 50 55 25 ]; c=[220 208 198 192 180 180 165 162 160 158 ]; d=d=[2 3 4 2 2 1 1 2 2 2 2]; for m=1:10 if d(m)~=2 d(m)=[]; a(m)=[]; b(m)=[]; end end 每个矩阵都是十个元素,以矩阵d为约束条件(除去以d中非2的元素为下标的a与b) 出现错误为:??? Index exceeds matrix dimensions. 请问一下,这是为什么?
再答: 原因还是上面说的,循环运行了几次d矩阵长度就不是10了,所以索引出错了。 a=[80 82 85 70 72 70 66 50 55 25 ]; c=[220 208 198 192 180 180 165 162 160 158 ]; d=[2 3 4 2 2 1 1 2 2 2 2]; a(find(d~=2)) = [] c(find(d~=2)) = []
d(find(d~=2)) = []
或者,找出有2的元素个数,直接新建相等长度元素都为2的矩阵.
d = 2*ones(1,length(find(d=2)))
再问: a=[80 82 85 70 72 70 66 50 55 25 ]; c=[220 208 198 192 180 180 165 162 160 158 ]; d=d=[2 3 4 2 2 1 1 2 2 2 2]; for m=1:10 if d(m)~=2 d(m)=[]; a(m)=[]; b(m)=[]; end end 每个矩阵都是十个元素,以矩阵d为约束条件(除去以d中非2的元素为下标的a与b) 出现错误为:??? Index exceeds matrix dimensions. 请问一下,这是为什么?
再答: 原因还是上面说的,循环运行了几次d矩阵长度就不是10了,所以索引出错了。 a=[80 82 85 70 72 70 66 50 55 25 ]; c=[220 208 198 192 180 180 165 162 160 158 ]; d=[2 3 4 2 2 1 1 2 2 2 2]; a(find(d~=2)) = [] c(find(d~=2)) = []
Matlab中 求的是矩阵d中删除不等于2的列
matlab中怎样同时删除矩阵两列元素
请问用matlab,如何将一个二维矩阵中 所有列数据都小于600的行删除?
在matlab中如何求两个列矩阵的协方差?
MATLAB怎样删除矩阵的某行与某列
两列的矩阵,将矩阵中第一列元素相同的第二列元素相加求平均值 matlab
请问如何在matlab中,删除二维矩阵每行的一个0元素?
matlab如何删除矩阵中符合条件的多行全部元素
matlab中求一个矩阵中每列中非零元素的最小值
matlab矩阵中如何删除3列都同时等于0行 ?
求Matlab程序:删除矩阵中的某些列
matlab中怎样求矩阵的特征向量?