MATLAB Answers

# Matrix having one row

1 ビュー (過去 30 日間)
Rostislav Stanek 2020 年 9 月 15 日
コメント済み: Rostislav Stanek 2020 年 9 月 15 日
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 2020 年 9 月 15 日

Avoid using LENGTH
Replace with
for i = 1:size(x,1)
...
end

#### 1 件のコメント

Rostislav Stanek 2020 年 9 月 15 日
Hello Bruno,
this works :-). Thank you very much!
Best regards,
Rostislav

サインインしてコメントする。

### その他の回答 (1 件)

BOB MATHEW SYJI 2020 年 9 月 15 日
Consider replacing length(x) with numel(x)

#### 1 件のコメント

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).

サインインしてコメントする。

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by