我可以修剪向量[0 0 0 2 8 12],[0 1 8 0 3 0],[0 0 0 0 25 0]中的前导零以获得[2 8 12],[1 8 0 3 0],[25 0]具有相同的功能?
有没有办法在不使用while
循环的情况下执行此操作? (或者任何其他类型的循环?)
我打算将矢量变成一个字符串,例如' 2h 8m 12s' 1mo 8d 0h 3m 0s' 25m 0s&#39 ;,如果这会打开任何门。
答案 0 :(得分:2)
正如@Luis Mendo所提到的,find()会做到这一点。
a=[0 0 0 2 8 12];
b=[0 1 8 0 3 0];
c=[0 0 0 0 25 0];
a_short = a(find(a>0,1):end);
b_short = b(find(b>0,1):end);
c_short = b(find(c>0,1):end);
find()中的“> 0”部分不是必需的,但我觉得它在可读性方面有帮助