# Matrix having one row

1 view (last 30 days)
Rostislav Stanek on 15 Sep 2020
Commented: Rostislav Stanek on 15 Sep 2020
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?
Rostislav

Bruno Luong on 15 Sep 2020
Edited: Bruno Luong on 15 Sep 2020
Avoid using LENGTH
Replace with
for i = 1:size(x,1)
...
end

#### 1 Comment

Rostislav Stanek on 15 Sep 2020
Hello Bruno,
this works :-). Thank you very much!
Best regards,
Rostislav

BOB MATHEW SYJI on 15 Sep 2020
Consider replacing length(x) with numel(x)

#### 1 Comment

Rostislav Stanek on 15 Sep 2020
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).

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by