如何使用索引

时间:2016-08-23 13:35:39

标签: matlab object handle

变量trackWorkspace包含cell structures。变量intensityDIVtrackworkspace内的向量数组。我想将nans内的任何intensityDIV变为零。它给我一个错误说: Insufficient outputs from right hand side to satisfy comma separated list expansion on left hand side. Missing [] are the most likely cause

data = [handles.trackWorkspace.intensityDIV];
if any(isnan(data))
    handles.trackWorkspace(isnan(data)).intensityDIV = 0;
end

1 个答案:

答案 0 :(得分:3)

handles.trackWorkspace(isnan(data)).intensityDIV创建comma separated list并为其指定值,您需要在右侧包含与逗号分隔列表中一样多的元素。您在右侧只有一个值(0),这会导致您的错误。

实现此目的的一种方法是使用deal为每个元素提供0

[handles.trackWorkspace(isnan(data)).intensityDiv] = deal(0);

这指定每个 intensityDiv字段作为输出,因为我们只向deal提供一个输入,所以它为所有提供相同的值输出。