我设法编写了一个函数,用于以矩阵的形式绘制一个pascal三角形,但是想让它看起来像一个三角形。
当我要求一个有四行的帕斯卡三角形时,它会给出
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1
有没有办法让这个
1
1 1
1 2 1
1 3 3 1
function x = testfunc(n)
x = eye(n);
x(:, 1) = 1;
for j=3:n
for i = 2 : n - 1
x(j, i) = x(j - 1, i - 1) + x(j - 1, i);
end
end
end
这是我目前的代码
答案 0 :(得分:0)
如果您只对视觉效果感兴趣,那么您可以将其转换为单元格数组,然后使用cellfun
循环遍历所有单元格,然后仅显示非0的值。
a= mat2cell(x,ones(n,1),n); %turn into cell array
cellfun(@(a)disp(a(a~=0)),a) %loop over cells and print only nonzero elements
如果您对保存内存感兴趣,可以从头开始使用单元格数组,也可以将其转换为稀疏矩阵,例如:
x = sparse(eye(n));
然后只会表示非零元素