matlab 的一个向量,形如[0 0 1 1 0 0 -1 0 0 0 1]之类的,如何将0元素转化为之前第一个非零元素一样?1,最开始的0不管,直到出现第一个非零元素2,也就是,转化为 [0 0 1 1 1 1 -1 -1 -1 -1 1]用for 循环当然可

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 09:17:54
matlab的一个向量,形如[001100-10001]之类的,如何将0元素转化为之前第一个非零元素一样?1,最开始的0不管,直到出现第一个非零元素2,也就是,转化为[001111-1-1-1-11]

matlab 的一个向量,形如[0 0 1 1 0 0 -1 0 0 0 1]之类的,如何将0元素转化为之前第一个非零元素一样?1,最开始的0不管,直到出现第一个非零元素2,也就是,转化为 [0 0 1 1 1 1 -1 -1 -1 -1 1]用for 循环当然可
matlab 的一个向量,形如[0 0 1 1 0 0 -1 0 0 0 1]之类的,如何将0元素转化为之前第一个非零元素一样?
1,最开始的0不管,直到出现第一个非零元素
2,也就是,转化为 [0 0 1 1 1 1 -1 -1 -1 -1 1]
用for 循环当然可以,但是数据量很大,会比较慢.有什么合适的向量函数吗?

matlab 的一个向量,形如[0 0 1 1 0 0 -1 0 0 0 1]之类的,如何将0元素转化为之前第一个非零元素一样?1,最开始的0不管,直到出现第一个非零元素2,也就是,转化为 [0 0 1 1 1 1 -1 -1 -1 -1 1]用for 循环当然可
如果占总数据比例不多,先用矢量化一次找到全部0,然后再循环替换之.
Z=find(S==0);
Snew=S;
nzero=length(Z)
for i=1:nzero
\x05Snew(Z(i))=Snew(Z(i)-1);
end
注意到你的数据可能首位0,你自己看着改吧.
说实在的,我想不出有什么更好的办法,感觉替换循环是避免不了的.
但用find一次找出全部0我试了下比直接循环找时间只有1/3到1/4.0值少的情况替换工作量不大,所以我这样处理还有意义.但如果0值多,相当于循环没省还要加额外的1/3时间做了次废操作提取0.

除了前面两个,后面所有0都换成1么?

如何用matlab求一个向量的模 如何用matlab找出矩阵每一列向量第一个0元素的位置以及最后一个0元素的位置,最好可以用循环来做, Matlab 如何在一个向量里找到一个子向量并返回子向量的位置?比如在[1 0 1 1 1 1 0 0 1 0 1 0]中我想找到[1 0 0 1],并返回位置, 如何用MATLAB 产生一组只包含0和1这两个元素的向量?RT. matlab中怎么查找一个向量中第一个非零元素的位置 如P=[0;1;2] 第一个非零元素的位置为2,在mbtlab中怎么matlab中怎么查找一个向量中第一个非零元素的位置 如P=[0;1;2] 第一个非零元素的位置为2, 如何用matlab 把一个M*N的向量拆分成M个N*1的矢量矢量统一记为 hi,i=0,1,...,M-1 matlab怎么随机产生一个只有0和1的行向量 如何用matlab随机产生一个123元素向量.rand(123,1)只能产生的是0-1之间的数.我需要产生的向量里每个元素是任意的实数. 如何在matlab中生成一个1,2,3,4..n的列向量 matlab里如何判断一个向量里的元素全为0?还有个疑问,matlab里如何判断一个向量(向量的维数未知)里面的元素都小于0 如何用matlab创建向量?我想创建一个n行一列的列向量,元素为全是1,用matlab如何写?例如:[ 111...1] matlab 向量夹角如U=(1,2,9),V=(0,1,0),求U,V的夹角 matlab 这个向量用什么函数生成?matlab 生成这样一个向量 [ 0 0 0 0 1 1 1 1 1 1 0 0 ],1在中间,其他都是0,有没有生成这种向量的函数啊? matlab 向量夹角已经知道一个向量,比如说是(0,5),还有向量夹角2*pi/5,求上面向量经过一次偏转后得到的新向量,那代码应该怎么编写啊 matlab中如何找出向量的0元素位置 matlab中如何将一个向量的值从一个矩阵中减掉如:矩阵[1 2 3;4 5 6]如何将[1;1]从每个列向量中减掉得到[0 2 3;3 5 6]感激不尽~~~不好意思我说错了 是从每个列向量中剪掉 上例中国应该要的结果是[ matlab一个向量比如[1,-5,2,0,3,-3]如何用最简单的语句分别实现判断大于0的元素的个数、等于0的元素的个数,以及小于0的元素的个数? 怎么用matlab做一个n维以0或1为元素的索引向量L