Matrix having one row

2 次查看(过去 30 天)
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 个评论
Rostislav Stanek
Rostislav Stanek 2020-9-15
Hello Bruno,
this works :-). Thank you very much!
Best regards,
Rostislav

请先登录,再进行评论。

更多回答(1 个)

BOB MATHEW SYJI
BOB MATHEW SYJI 2020-9-15
Consider replacing length(x) with numel(x)
  1 个评论
Rostislav Stanek
Rostislav Stanek 2020-9-15
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).

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by