我在删除矩阵末尾的多余行时遇到了问题。通常,我需要删除包含特定列中特定元素的行,而不使用循环。这似乎很容易,但我仍然继续得到一些奇怪的结果。MATLAB:从矩阵中删除最后一行,无循环
对于简单的例子,让我们有一个10×10矩阵A:
A=[1:10; 901:910; 201:210; 301:310; 701:710; 401:410; 601:610; 501:510; 801:810; 101:110];
而且我想删除(为了更好地说明只是那些代替)从第四的行到最后,他的第三列包含值比600更高的结果应该看起来像:
| 1 2 3 4 5 6 7 8 9 10|
|901 902 903 904 905 906 907 908 909 910|
|201 202 203 204 205 206 207 208 209 210|
|301 302 303 304 305 306 307 308 309 310|
| 1 1 1 1 1 1 1 1 1 1|
|401 402 403 404 405 406 407 408 409 410|
| 1 1 1 1 1 1 1 1 1 1|
|501 502 503 504 505 506 507 508 509 510|
| 1 1 1 1 1 1 1 1 1 1|
|101 102 103 104 105 106 107 108 109 110|
我的想法看起来像这样:
A(A(4:end,3)>600,:)=[1];
但结果是一些无意义的矩阵。
感谢您的帮助!
用'A([false(3,1); A(4:end,3)> 600],:)= []';删除行。 – abcd