【问题标题】:Large matrix for surface plot?曲面图的大矩阵?
【发布时间】:2014-02-25 00:37:35
【问题描述】:

我对 MATLAB 有点陌生,我正在尝试制作一个类似于以下示例的大型矩阵:

C=[1,2,3] 
n=[-3,0,3]
X=[f(1,-3),f(1,0),f(1,3);f(2,-3),f(2,0),f(2,3);f(3,-3),f(3,0),f(3,3)]

其中fCn 中值的某个函数。我需要这种矩阵X,这样我就可以制作surf(C,n,X) 的曲面图。问题是,在我真正的问题中,我需要一个 51x51 矩阵,而且我不知道如何在不输入所有内容的情况下制作这样的矩阵(这将是一项可怕的任务)。

有人可以帮我理解如何制作这样的情节吗?非常感谢!

【问题讨论】:

  • 如您所示,f 是否在数组输入以及一对标量(例如 f(1,1))上逐元素操作?

标签: matlab plot


【解决方案1】:

看看ndgrid:

>> [ii,jj] = ndgrid(C,n)
ii =
     1     1     1
     2     2     2
     3     3     3
jj =
    -3     0     3
    -3     0     3
    -3     0     3

如果f 在非标量输入上逐元素操作,那么您可以很容易地得到X

X = f(ii,jj);

如果f 只能取一对标量,试试arrayfun

X = arrayfun(@(x,y)f(x,y),ii,jj);

(或修改f!)

【讨论】:

    【解决方案2】:
    X = f(C'*ones(1, 51), ones(51, 1)*n))
    

    【讨论】:

    • 对不起;我似乎无法完成这项工作。您能否详细说明或提供一个链接以更深入地了解这一点?
    猜你喜欢
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2015-02-24
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    相关资源
    最近更新 更多