在matlab编程中,如何生成如下图的二维坐标矩阵

在matlab编程中,如何生成如下图的二维坐标矩阵?

http://zhidao.baidu.com/link?url=jq6QVnumBQTL4Ua3vU9LXtoJCPDfpalc38_vcPo961a7GkGwjII3U_vP4UTXmnzCh7Vn9e6Lo-VTg4P1YFvk0tKJHl4N275iuyFbmHEobCO


在matlab的编程中,如何生成如下图所示的二维坐标矩阵,并且怎么调用?

在matlab编程中,如何生成如下图的二维坐标矩阵_第1张图片

Jess20100211  |  浏览 790 次   2015-05-25 18:47
2015-05-25 19:40 最佳答案

1、普通的数值矩阵的元素只能是一个数,不可能是这样的数对。要存储这样的数对,一般采用cell数组,例如:

1
2
3
4
5
6
7
8
9
10
>> [y,x]=meshgrid( 1 : 4 );
>> C=arrayfun(@(x,y)[x,y],x,y, 'UniformOutput' , false )
C =
     [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
     [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
     [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
     [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
>> C{ 3 , 2 }
ans =
      3      2

按照cell数组的显示方式,整体显示时不会直接显示向量的内容,需要按元素查看才行。

 

2、如果希望按照图中的包括括号和逗号的方式显示,可以用字符串表示数对:

1
2
3
4
5
6
7
>> [y,x]=meshgrid( 1 : 4 );
>> arrayfun(@(x,y)sprintf( '(%i,%i)' ,[x,y]),x,y, 'UniformOutput' , false )
ans =
     '(1,1)'     '(1,2)'     '(1,3)'     '(1,4)'
     '(2,1)'     '(2,2)'     '(2,3)'     '(2,4)'
     '(3,1)'     '(3,2)'     '(3,3)'     '(3,4)'
     '(4,1)'     '(4,2)'     '(4,3)'     '(4,4)'

3、怎么样调用是由题主自己决定的,因为别人根本不知道你想调用了干什么。

追问
看懂了 但是如楼主回答那样  C{3,2}= 3  2  如果想调用C{3,2}中的某一数值比如3  该如何操作?
追答

取cell数组的元素用花括号,取出来后是一个普通的数值向量,再取向量的元素用圆括号就行:

1
2
3
>> C{ 3 , 2 }( 1 )
ans =
      3

你可能感兴趣的:(Matlab)