我想存储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