Matrix having one row

5 visualizzazioni (ultimi 30 giorni)
Rostislav Stanek
Rostislav Stanek il 15 Set 2020
Commentato: Rostislav Stanek il 15 Set 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?
Thank you for your help!
Rostislav

Risposta accettata

Bruno Luong
Bruno Luong il 15 Set 2020
Modificato: Bruno Luong il 15 Set 2020
Avoid using LENGTH
Replace with
for i = 1:size(x,1)
...
end
  1 Commento
Rostislav Stanek
Rostislav Stanek il 15 Set 2020
Hello Bruno,
this works :-). Thank you very much!
Best regards,
Rostislav

Accedi per commentare.

Più risposte (1)

BOB MATHEW SYJI
BOB MATHEW SYJI il 15 Set 2020
Consider replacing length(x) with numel(x)
  1 Commento
Rostislav Stanek
Rostislav Stanek il 15 Set 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).

Accedi per commentare.

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by