matlab - 如何输出矩阵维度及其内容?

标签 matlab octave

是否可以让 GNU Octave 输出矩阵维度及其内容?例如,它应该产生 smth。像这样:

octave:1> X = [1 2; 3 4]

X [2x2] =

   1   2
   3   4


octave:2> X(1,:)

ans [1x2] =

   1   2

最佳答案

在 MATLAB 中,在路径中某处名为 @double 的文件夹中创建 display.m,内容如下:

function display(v)
name = inputname(1);
if isempty(name)
    name = 'ans';
end
s = num2cell(size(v));
fprintf('\n%s [%d%s] =\n\n', name, s{1}, sprintf('x%d', s{2:end}));
builtin('disp', v);
end

这样您就可以重写 double 类的 display 方法,并得到您所描述的内容。但是,这不适用于其他类,如 int8logicalcell。您必须重写您感兴趣的所有类的方法。示例:

>> A=ones(2,2,2)

A [2x2x2] =

(:,:,1) =
     1     1
     1     1
(:,:,2) =
     1     1
     1     1

关于matlab - 如何输出矩阵维度及其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493857/

相关文章:

config - 如何在 Octave 中永久加载包?

matlab - 如何使用多个循环在矩阵中进行计算?

matlab - 将终端下的Matlab不可见图保存为相同大小的图像

regex - 使用正则表达式查找以字符开头和结尾的字符串组

math - 正弦波频率拟合

string - 如何连接字符串+我?

java - 将 Matlab 组件添加到 Java JWindow

python - 在 MATLAB 中嵌入 Python

precision - 有没有办法在 Octave 中打印至少 20 位有效数字?

excel - 将 Excel 文件中的数据加载到 R 或 Octave 中