תת-מחלקות עקיפות ידועות |
NdArray
של בתים.
שיטות ציבוריות
תקציר ByteNdArray | |
abstract NdArraySequence < ByteNdArray > | אלמנטים (int dimensionIdx) מחזירה רצף של כל האלמנטים בממד נתון. |
תקציר ByteNdArray | לקבל (ארוכות... קואורדינטות) מחזירה את האלמנט N-ממדי של מערך זה בקואורדינטות הנתונות. |
בתים מופשטים | getByte (ארוכות... קואורדינטות) מחזירה את ערך הבתים של הסקלר שנמצא בקואורדינטות הנתונות. |
אבסטרקט בייט | getObject (ארוכות... קואורדינטות) מחזירה את הערך של הסקלר שנמצא בקואורדינטות הנתונות. |
תקציר ByteNdArray | read ( DataBuffer <Byte> dst) |
תקציר ByteNdArray | קרא ( ByteDataBuffer dst) |
abstract NdArraySequence < ByteNdArray > | סקלרים () מחזירה רצף של כל הסקלרים במערך זה. |
תקציר ByteNdArray | |
תקציר ByteNdArray | setByte (ערך בתים, ארוכות... קואורדינטות) מקצה את ערך הבתים של הסקלר שנמצא בקואורדינטות הנתונות. |
תקציר ByteNdArray | setObject (ערך בייט, ארוכות... קואורדינטות) |
תקציר ByteNdArray | |
תקציר ByteNdArray | כתוב ( ByteDataBuffer src) |
תקציר ByteNdArray | כתוב ( DataBuffer <Byte> src) |
שיטות בירושה
שיטות ציבוריות
תקציר ציבורי NdArraySequence < ByteNdArray > אלמנטים (int dimensionIdx)
מחזירה רצף של כל האלמנטים בממד נתון.
באופן הגיוני, ניתן לשטח את המערך N-ממדי בוקטור יחיד, כאשר הסקלרים של האלמנט (n - 1)
קודמים לאלו של האלמנט (n)
ה-th, עבור סך ערכי size()
.
לדוגמה, בהינתן מטריצת nxm
על צירי [x, y]
, אלמנטים חוזרים בסדר הבא:
x 0 y 0 , x 0 y 1 , ..., x 0 y m-1 , x 1 y 0 , x 1 y 1 , ..., x n-1 y m-1
לאחר מכן ניתן לחזור על הרצף המוחזר כדי לבקר בכל רכיב, על ידי קריאה forEach(Consumer)
או forEachIndexed(BiConsumer)
.
// Iterate matrix for initializing each of its vectors
matrixOfFloats.elements(0).forEach(v -> {
v.set(vector(1.0f, 2.0f, 3.0f));
);
// Iterate a vector for reading each of its scalar
vectorOfFloats.scalars().forEachIdx((coords, s) -> {
System.out.println("Value " + s.getFloat() + " found at " + coords);
});
}
פרמטרים
dimensionIdx | אינדקס של הממד |
---|
מחזיר
- רצף
NdArray
תקציר ציבורי ByteNdArray get (ארוכות... קואורדינטות)
מחזירה את האלמנט N-ממדי של מערך זה בקואורדינטות הנתונות.
ניתן לאחזר אלמנטים מכל אחד מהממדים של מערך זה. לדוגמה, אם מספר הקואורדינטות שווה למספר הממדים של מערך זה, מוחזר מערך rank-0 (סקלארי), אשר לאחר מכן ניתן לקבל את הערך על ידי קריאת `array.getObject()`.
כל שינוי שהוחל על הרכיבים המוחזרים משפיע גם על הנתונים של מערך זה, מכיוון שאין עותק מעורב.
שים לב שהפעלת שיטה זו היא דרך מקבילה ויעילה יותר לפרוס מערך זה על סקלר בודד, כלומר array.get(x, y, z)
שווה ל- array.slice(at(x), at(y), at(z))
פרמטרים
קואורדינטות | קואורדינטות של האלמנט לגישה, אף אחת לא תחזיר את המערך הזה |
---|
מחזיר
- האלמנט באינדקס הזה
byte תקציר ציבורי getByte (ארוכות... קואורדינטות)
מחזירה את ערך הבתים של הסקלר שנמצא בקואורדינטות הנתונות.
כדי לגשת לאלמנט הסקלרי, מספר הקואורדינטות שסופק חייב להיות שווה למספר הממדים של מערך זה (כלומר הדירוג שלו). לְדוּגמָה:
ByteNdArray matrix = NdArrays.ofBytes(shape(2, 2)); // matrix rank = 2
matrix.getByte(0, 1); // succeeds, returns 0
matrix.getByte(0); // throws IllegalRankException
ByteNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.getByte(); // succeeds, returns 0
פרמטרים
קואורדינטות | קואורדינטות של הסקלר לפתרון |
---|
מחזיר
- הערך של הסקלר הזה
זורק
IndexOutOfBoundsException | אם חלק מהקואורדינטות נמצאות מחוץ לגבולות המימד שלהן |
---|---|
חריג דירוג בלתי חוקי | אם מספר הקואורדינטות אינו מספיק כדי לגשת לאלמנט סקלרי |
תקציר ציבורי Byte getObject (ארוכות... קואורדינטות)
מחזירה את הערך של הסקלר שנמצא בקואורדינטות הנתונות.
כדי לגשת לאלמנט הסקלרי, מספר הקואורדינטות שסופק חייב להיות שווה למספר הממדים של מערך זה (כלומר הדירוג שלו). לְדוּגמָה:
FloatNdArray matrix = NdArrays.ofFloats(shape(2, 2)); // matrix rank = 2
matrix.getObject(0, 1); // succeeds, returns 0.0f
matrix.getObject(0); // throws IllegalRankException
FloatNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.getObject(); // succeeds, returns 0.0f
floatArray.getFloat(0);
. פרמטרים
קואורדינטות | קואורדינטות של הסקלר לפתרון |
---|
מחזיר
- הערך של הסקלר הזה
תקציר ציבורי NdArraySequence < ByteNdArray > סקלרים ()
מחזירה רצף של כל הסקלרים במערך זה.
זה שווה ערך ל-call elements(shape().numDimensions() - 1)
מחזיר
- רצף
NdArray
תקציר ציבורי ByteNdArray setByte (ערך בתים, קואורדינטות ארוכות)
מקצה את ערך הבתים של הסקלר שנמצא בקואורדינטות הנתונות.
כדי לגשת לאלמנט הסקלרי, מספר הקואורדינטות שסופק חייב להיות שווה למספר הממדים של מערך זה (כלומר הדירוג שלו). לְדוּגמָה:
ByteNdArray matrix = NdArrays.ofBytes(shape(2, 2)); // matrix rank = 2
matrix.setByte(10, 0, 1); // succeeds
matrix.setByte(10, 0); // throws IllegalRankException
ByteNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.setByte(10); // succeeds
פרמטרים
עֵרֶך | הערך להקצות |
---|---|
קואורדינטות | קואורדינטות של הסקלר להקצאה |
מחזיר
- המערך הזה
זורק
IndexOutOfBoundsException | אם חלק מהקואורדינטות נמצאות מחוץ לגבולות המימד שלהן |
---|---|
חריג דירוג בלתי חוקי | אם מספר הקואורדינטות אינו מספיק כדי לגשת לאלמנט סקלרי |
תקציר ציבורי פרוסת ByteNdArray ( אינדקס... אינדקסים)
יוצר תצוגה רב-ממדית (או פרוסה) של מערך זה על ידי מיפוי מימד אחד או יותר לבוררי האינדקס הנתונים.
פרוסות מאפשרות לחצות מערך N-ממדי בכל אחד מהצירים שלו ו/או לסנן רק אלמנטים בעלי עניין. לדוגמה, עבור מטריצה נתונה בצירי [x, y]
, ניתן לבצע איטרציה של אלמנטים ב- y=0
עבור כל x
.
כל שינוי שהוחל על הפרוסה המוחזרת משפיע גם על הנתונים של מערך זה, מכיוון שאין עותק מעורב.
דוגמה לשימוש:
FloatNdArray matrix3d = NdArrays.ofFloats(shape(3, 2, 4)); // with [x, y, z] axes
// Iterates elements on the x axis by preserving only the 3rd value on the z axis,
// (i.e. [x, y, 2])
matrix3d.slice(all(), all(), at(2)).elements(0).forEach(m -> {
assertEquals(shape(2), m); // y=2, z=0 (scalar)
);
// Creates a slice that contains only the last element of the y axis and elements with an
// odd `z` coordinate.
FloatNdArray slice = matrix3d.slice(all(), at(1), odd());
assertEquals(shape(3, 2), slice.shape()); // x=3, y=0 (scalar), z=2 (odd coordinates)
// Iterates backward the elements on the x axis
matrix3d.slice(flip()).elements(0).forEach(m -> {
assertEquals(shape(2, 4), m); // y=2, z=4
});
}
פרמטרים
מדדים | בוררי אינדקס לכל ממדים, החל מממד 0 של מערך זה. |
---|
מחזיר
- האלמנט הנובע מבחירת האינדקס