我想存儲30個學生的名稱和標記等所有內容。我將名稱和標記的信息一起保存在單元陣列中。但爲了比較兩名學生,我需要將單元格數組存儲在30個元素的向量中,以便以後可以訪問。如何創建單元格陣列向量
0
A
回答
6
我會推薦使用一個結構數組。例如,
students(1) = struct('name','Andrew', 'mark',90);
students(2) = struct('name','Betty', 'mark',92);
students(3) = struct('name','Charles', 'mark',88);
然後,您可以通過編制索引student(n)
來簡單地引用它們。您還可以獲取並設置其特定字段,如someName = student(2).name
或student(1).mark = 98
。
2
難道你想有一個二維單元陣列:
students = cell(30, 2);
students{1,1} = 'Andrew';
students{1,2} = 90;
% or
students(2,:) = {'Becky' 92};
% etc
或細胞陣列的單元陣列?
students = cell(30, 1);
students{1}{1} = 'Andrew';
students{1}{2} = 90;
% or
students{2} = {'Becky' 92};
% etc
在任何情況下,我強烈建議使用@Phonon建議的結構數組。
或者,您可以使用一組對象。查看MATLAB幫助中的面向對象編程信息。
1
假設您有以下幾點:
names = {'Andrew'; 'Betty'; 'Charles'}
marks = [90; 92; 88]
我懷疑你試過這樣:
>> C = {names marks}
C =
{3x1 cell} [3x1 double]
基本上它創建了一個1x2的cellarray(矢量)。您可以訪問學生的值爲:C{1}{3}
和C{2}(3)
。
一個更方便的形式是創建一個3×2的cellarray(矩陣):
>> C = [names num2cell(marks)]
C =
'Andrew' [90]
'Betty' [92]
'Charles' [88]
其更容易操控。例如,如果你要提取的第一個和最後學生作比較:
C([1 end],:)
您可以通過等級或名稱做這樣的事情排序:
[~,idx] = sort(marks);
C(idx,:)
如果你決定去與結構
相關問題
- 1. 如何動態創建單元陣列
- 2. 創建單元陣列
- 3. 如何從自定義單元格陣列創建NSDictionnary
- 4. 從多個列向量創建矩陣
- 5. 創建單元格矩陣的總和
- 6. 向量創建矩陣的向量
- 7. 使用包含向量的單元格陣列的ismember()
- 8. 創建並初始化單元陣列
- 9. 單擊單元格後創建列表
- 10. 如何在單元格中創建表格變量?
- 11. 從Excel單元格讀取數組創建2d陣列
- 12. 創建具有多個像素或單元格值的陣列
- 13. 使用一個單元格陣列創建另一個
- 14. 從包含變量的單元格陣列構建文件名
- 15. opencv:創建矩陣或向量矩陣
- 16. 查找來自單元陣列串並創建一個新的單元陣列
- 17. 爲單元格位置創建變量
- 18. 如何在Excel中創建逐列和單元格的列
- 19. 在MatLab中,如何從單元格數組創建一個字符向量?
- 20. 創建此陣列格式
- 21. 如何創建動態tableView單元格?
- 22. 使用MATLAB將矩陣向量整合到單元陣列中?
- 23. 轉換向量單元陣列到二維矩陣 - MATLAB
- 24. 使用Matlab將4d矩陣重塑成向量單元陣列
- 25. 如何檢測單元陣列中的空單元格?
- 26. 如何從張量流中兩個向量的元素組合創建矩陣
- 27. 矢量陣列創建
- 28. 如何創建組陣列
- 29. 如何創建陣列組
- 30. 向量化單元陣列元素操作
,這個答案也可能會有所幫助:http://stackoverflow.com/questions/4166438/how-do-i-define-a-structure-in-matlab/4169216#4169216 – Amro