MATLAB Programming Techniques, Extracting Portions of a table

2 ビュー (過去 30 日間)
Elisabeth
Elisabeth 2024 年 6 月 18 日
編集済み: John D'Errico 2024 年 6 月 18 日
Hello,
in the course "Programming Techniques" theses lines show how you can extract portions of a table:
t2 = t1(6:15,[1 5 end-1:end])
or
t2 = t1(6:15,["A" "E" "N" "O"])
Why do I need
end-1:end
in the first version?
Lisa

採用された回答

Piyush Kumar
Piyush Kumar 2024 年 6 月 18 日
The end keyword in MATLAB is a reference to the last element or position in an array, matrix, or table. You can learn more about the end keyword from this documentation link.
In the second version, "N" and "O" must be the last 2 columns which can be referenced by "end-1" and "end" too. These are just 2 ways to perform same task.

その他の回答 (1 件)

John D'Errico
John D'Errico 2024 年 6 月 18 日
編集済み: John D'Errico 2024 年 6 月 18 日
Why do you need it? Well, I don't see the question in the course, and I am not enrolled in the course, so...
But what does that construct do? When you are indexing, the end keyword indicates the last element of a vector or array, in whatever dimension you are looking at. I'll try it out in an example.
V = primes(20)
V = 1x8
2 3 5 7 11 13 17 19
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
What does V(end) do?
V(end)
ans = 19
Ah, do you see? It returns the last element. How about this one?
V(end-1:end)
ans = 1x2
17 19
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
end-1 is the next to last element, so that returns the final two elements. And this one?
V([1, 3, end-1:end])
ans = 1x4
2 5 17 19
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
So the frst element, the third one, and the final two elements.
When it is an array you are working with, TRY IT!
A = magic(7)
A = 7x7
30 39 48 1 10 19 28 38 47 7 9 18 27 29 46 6 8 17 26 35 37 5 14 16 25 34 36 45 13 15 24 33 42 44 4 21 23 32 41 43 3 12 22 31 40 49 2 11 20
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
A([2 4],[1 end-1:end])
ans = 2x3
38 27 29 5 36 45
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
It extracted from rows 2 and 4. And in terms of the columns, it took columns 1 6 and 7. So the 1st column, and the last two columns, since A was a 7x7 array.

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by