How to use for loop rather than nesting if loop
1 次查看(过去 30 天)
显示 更早的评论
I want to use this code to subtract one value from each number in the histogram when all have been selected to find the new number with zero counts. This code worked (since there are two if loops with one nested) for the first two times 1 is subtracted from cdiff, but then returns the error 'Unbalanced or unexpected parenthesis or bracket.' : %check if Cdiff is empty:
if isempty(C_diff)
fprintf('C_diff is empty (all numbers have drawn once) \n');
cdiff_counts= counts - 1;%cdiff_data_vector = reshape(data,[9,numel(data)]);
C_diff = find(cdiff_counts==0);%return vector of values with 0
fprintf('By subtracting 1 count for all numbers, the new C_diff is %d\n', C_diff);
if isempty(C_diff)
fprintf('C_diff is empty (all numbers have drawn once) \n');
cdiff_counts= cdiff_counts - 1;%cdiff_data_vector = reshape(data,[9,numel(data)]);
C_diff = find(cdiff_counts==0);%return vector of values with 0
fprintf('By subtracting 1 count for all numbers, the new C_diff is %d\n', C_diff);
end
else
fprintf('C_diff is %d\n', C_diff);%
end
Replacing the first 'if' with 'for' returns 'Unbalanced or unexpected parenthesis or bracket.'
How can I get this to occur until C_diff is no longer an empty array?
if isempty(C_diff)
fprintf('C_diff is empty (all numbers have drawn once) \n');
cdiff_counts= counts - 1;%cdiff_data_vector = reshape(data,[9,numel(data)]);
C_diff = find(cdiff_counts==0);%return vector of values with 0
fprintf('By subtracting 1 count for all numbers, the new C_diff is %d\n', C_diff);
else
fprintf('C_diff is %d\n', C_diff);%
end
Best regards,
Alex
采纳的回答
Jan
2018-1-27
编辑:Jan
2018-1-27
while isempty(C_diff)
cdiff_counts = counts - 1;
C_diff = find(cdiff_counts == 0);
end
It looks like C_diff contains positive values initially, maybe only integers. Then this is more efficient:
minValue = min(counts); % [EDITED]
C_diff = find(C_diff = minValue);
3 个评论
Jan
2018-1-27
I had a typo in the min() call. I assume, it is much cheaper. If you provide some meaningful inputs data and the wanted result, I could even test my suggestions.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!