MATLAB>converting data>struct2array

avinamal

New member
MATLAB>converting data>struct2array

האם יש דרך להעביר מבנה STRUCTURE עם שדה יחיד ובו מערכים תואמי מימד למערך רב מימדי ללא לולאה שתפרק את ה struct ותבנה אותו מחדש כ array? השאלה מתייחסת לקובץ avi, הנקרא ע"י aviread כמבנה המכיל שדות מיותרים מבחינתי (colormap). עם זאת בשדה cdata מוכלים מערכים בגודל קבוע (לרוב 480*640). ביצוע פעולות על מימדים שונים של הסרט יתאפשר רק עם אמיר אותו למערך תלת מימדי... אשמח לעזרה.
 

jinji0

New member
המערך שמוכנס לתוך הcdata הוא כבר

תלת מיימדי. כאשר אתה ממיר קובץ AVI אתה מקבל מערך של X*Y*3. 3 פלטפורמות של צבעים (RGB). אתה יכול לגשת אל כל אחד מהם בנפרד או לגשת לכל פיקסל או שורה של פיקסלים... תנסה למשל להדפיס את שורת הפיקסלים הראשונה:
imagesc(MOV.cdata(1,:,:))​
או את כל הפריים על צבעי הR או G או B בהתאמה:
imagesc(MOV.cdata:),:,2))​
שים לב הכנסתי לתוך MOV רק פריים אחד של קובץ הAVI. ניסיתי להכניס גם שני פריימים אבל אני לא פונקציית SIZE של המטריצה מראה לי עדיין מערך תלת מיימדי כך שאני לא יודע איך אני ניגש לפריים נבחר. יש מה ללמוד. אני מקווה שזה עוזר לך, מאחר ולא בטוח שהבנתי מה שאלת... בכל מקרה בעניין פורום מטלאב - לא יזיק אבל לא קיים אחד כזה ישראלי. ויש פה בפורום מעט מאוד אנשים הפעילים בשפה הזאת.
 
למעלה