Hello,
I have the following problem: I would like to create a vecor of vectors containing pairs of numbers and then iterate through it. If I have a vector containing more than one pair, everything is OK:
x = [[-2, -1.5]; [-0.5, 0.5]; [2, 2.5]];
for i = 1:length(x)
%operations with x(i)
end
Unfortunately, if the input is a vactor containing only one pair, the program crashes:
x = [[-2, -1.5]];
for i = 1:length(x)
%operations with x(i)
end
I understand, why the program crashes, but I do not know, how to solve it. With other words: How can I design a general program, which works for both possibility without necessity of changing the loop?
Thank you for your help!
Rostislav

 采纳的回答

Bruno Luong
Bruno Luong 2020-9-15
编辑:Bruno Luong 2020-9-15
Avoid using LENGTH
Replace with
for i = 1:size(x,1)
...
end

1 个评论

Hello Bruno,
this works :-). Thank you very much!
Best regards,
Rostislav

请先登录,再进行评论。

更多回答(1 个)

BOB MATHEW SYJI
BOB MATHEW SYJI 2020-9-15

0 个投票

Consider replacing length(x) with numel(x)

1 个评论

Length and numel yield the same.
>> x = [[-2, -1.5]];
>> numel(x)
ans =
2
>> length(x)
ans =
2
I would like to get 1 in order to have a vector of length 2 in x(1) (or x(i) in general).

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

产品

版本

R2020a

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by