X = X(1:find(~isnan(X), 1, 'last'));什么意思
时间: 2024-02-04 12:03:51 浏览: 20
这行代码的作用是将向量X中最后一个非NaN元素之后的所有NaN元素都删除掉。
具体来说,find(~isnan(X), 1, 'last') 的作用是找到最后一个非NaN元素的下标,然后 X(1:...) 就表示从向量X的第一个元素开始取值,一直取到最后一个非NaN元素的位置。这样,这个操作就将向量X中最后一个非NaN元素之后的所有NaN元素都删除掉了。
相关问题
matlab优化这段代码x_1 = x(1,~isnan(x(1,:))); x_2 = x(2,~isnan(x(2,:)));
一种可能的优化方法是使用逻辑索引来选择非NaN元素:
x_1 = x(1, ~isnan(x(1,:)));
x_2 = x(2, ~isnan(x(2,:)));
可以替换为:
non_nan_idx = ~isnan(x);
x_1 = x(1, non_nan_idx(1,:));
x_2 = x(2, non_nan_idx(2,:));
这种方法只需要使用一个逻辑索引数组来选择所有非NaN元素,从而避免了重复计算。
改写代码:def index_y(x): y='' if x==0: y='speed_391_24' elif x==1: y='speed_391_23' else: y='speed_391_22' return y def nan(): data=data2[['speed_391_24','speed_391_23','speed_391_22']] for i in range(0,len(x_index)): data.loc[x_index[i],index_y(y_index[i])]=np.nan return data data2_0=nan() nan_index=[] for i in range(len(data2_0)): if (np.isnan(data2_0.iat[i,0])==True): nan_index.append(i) print(nan_index)
我已经了解了你的要求和第一个问题,代码改写如下:
def index_y(x):
if x==0:
return 'speed_391_24'
elif x==1:
return 'speed_391_23'
else:
return 'speed_391_22'
def nan():
data=data2[['speed_391_24','speed_391_23','speed_391_22']]
for i in range(0,len(x_index)):
data.loc[x_index[i],index_y(y_index[i])]=np.nan
return data
data2_0=nan()
nan_index=[]
for i in range(len(data2_0)):
if (np.isnan(data2_0.iloc[i,0])==True):
nan_index.append(i)
print(nan_index)
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)