1

以下について:

    x = [0.5 1.5 2.5 3.5 4.5];

    for k = 1:1:5
      plot(x(k),x','b^','linewidth', 2)
      hold on
    end

に似ている:

[x,y] = meshgrid(0.5:1:4.5);

各ポイント(青い三角形)の座標にインデックスを付けるにはどうすればよいですか?

ここに画像の説明を入力してください

結果は次のようになります。

point1  = [x(1),x(1)]; % [0.5,0.5]
point2  = [x(1),x(2)]; % [0.5,1.5]
point3  = [x(1),x(3)]; % [0.5,2.5]
point4  = [x(1),x(4)]; % [0.5,3.5]
point5  = [x(1),x(5)]; % [0.5,4.5]
point6  = [x(2),x(1)]; % [1.5,0.5]
...
point25  = [x(5),x(5)];% [4.5,4.5]

私は何か間違ったことをしなければなりません。さもないと、matlabプログラムで今日これらのインデックスを作成できません。

[~,idx] = length(point(:));
idxpoint = ind2sub(size(point),idx);

実例を書いてください。

前もって感謝します。

4

3 に答える 3

2

あなたはほとんどそれを持っていました。あなたはそのために使うことができますmeshgrid

x = linspace(0.5, 4.5, 5);
y = linspace(0.5, 4.5, 5);
[Y, X] = meshgrid(x, y);

points = [X(:) Y(:)];

linspaceこの方法には、 x座標とy座標に異なるものを使用できるという利点があります。

これで、ストアのすべての行pointsxとyが1つのポイントを調整します。

points(1,:)
ans =

0.5000
0.5000

points(25,:)
ans =

4.5000
4.5000
于 2012-11-27T19:17:20.910 に答える
1

すべてのポイントをN行2列の行列に積み重ねることができ、各行はポイントを表します。」

close all
x = [0.5 1.5 2.5 3.5 4.5];
n = length(x);
X = [];

for k = 1:1:5
    plot(x(k),x','b^','linewidth', 2)
    X = [X; repmat(x(k),n,1) x'];
    hold on
end

% replot on new figure
figure, hold on
plot(X(:,1),X(:,2),'b^','linewidth',2)

% Each row of X is one of your points, i.e.
% Point number 5:
X(5,:)
于 2012-11-27T19:12:52.857 に答える
1

次はどうですか?

[x y] = meshgrid(.5:1:4.5);
points = [reshape(x,1,[])',reshape(y,1,[])']


points =

0.5000    0.5000
0.5000    1.5000
0.5000    2.5000
0.5000    3.5000
0.5000    4.5000
1.5000    0.5000
1.5000    1.5000
1.5000    2.5000
1.5000    3.5000
1.5000    4.5000
2.5000    0.5000
2.5000    1.5000
2.5000    2.5000
2.5000    3.5000
2.5000    4.5000
3.5000    0.5000
3.5000    1.5000
3.5000    2.5000
3.5000    3.5000
3.5000    4.5000
4.5000    0.5000
4.5000    1.5000
4.5000    2.5000
4.5000    3.5000
4.5000    4.5000
于 2012-11-27T19:16:34.987 に答える