我想将数据添加到结构数组,而不添加结构的字段必须与原始结构的字段具有相同的顺序.例如:
% Works fine:
students.name = 'John';
students.age = 28;
student2.name = 'Steve';
student2.age = 23;
students(2) = student2;
% Error if the order of the fields of student2 is reversed
students.name = 'John';
students.age = 28;
student2.age = 23;
student2.name = 'Steve';
students(2) = student2; % Error: Dissimilar structs
Run Code Online (Sandbox Code Playgroud)
是否有结构的变体我可以添加数据而不必保持相同的字段顺序?
编辑:一个解决方法是始终使用matlabs"orderfields",它按字母顺序排序字段.也就是说,上述错误的例子将成为:
% Order fields alphabetically
students.name = 'John';
students.age = 28;
student2.age = 23;
student2.name = 'Steve';
students = orderfields(students);
student2 = orderfields(student2);
students(2) = student2; % …Run Code Online (Sandbox Code Playgroud) 我有一个图像作为一个N x M矩阵与12位数据,我想用来imwrite将图像保存为.pgm文件.
为什么MATLAB将图像缩放到16位?我怎么能绕过这个呢?
使用该'MaxValue'参数似乎也会改变图像,因为之后无法正确显示,例如在IrfanView中.
我有一个12位的pgm图像,我用imread读取.结果是16位图像具有在0到2 ^ 16-1的整个范围内的值.
Matlab如何扩展?将
X = imread('filename');
X = uint16(double(X)*((2^12-1)/(2^16-1)));
Run Code Online (Sandbox Code Playgroud)
恢复原来的强度?