私はいくつかのコードを持っていますが、私はそれを少し微調整しようとしています。これは、ラインから1文字を読み込むためにfgets
を使用し、3Dプロットのカラーポイントに使用していました。だから、それは何を与えるためにx、y、zのポイントを割り当てるために他のデータファイルを使用してMatlabコードを理解する
a
p
p
n
c
を読むでしょう。その結果、は本当にかわいい 3Dプロットです。
それは
0
1
1
0
2
2
0
を読み込むので、私は、入力ファイルを編集していると私は色番号に同じ色をして欲しいです。
私はコードで、これまで得てきたところです:
function PlotCluster(mcStep)
clear all
filename = input('Please enter filename: ', 's');
disp('Loading hopping site coordinates ...')
load x.dat
load y.dat
load z.dat
temp = z;
z = x;
x = temp;
n_sites = length(x);
disp('Loading hopping site types ...')
fp = fopen([filename]);
data = load(filename); %# Load the data
% Plot the devices
% ----------------
disp('Plotting the sample surface ...')
figure
disp('Hello world!')
ia = data == 0;
in = data == 1;
ip = data == 2;
disp('Hello Again')
plot3(x(ia),y(ia),z(ia),'b.') %,'MarkerSize',4)
hold on
plot3(x(ic),y(ic),z(ic),'b.') %,'MarkerSize',4)
plot3(x(in),y(in),z(in),'g.') %,'MarkerSize',4)
plot3(x(ip),y(ip),z(ip),'r.') %,'MarkerSize',4)
daspect([1 1 1])
set(gca,'Projection','Perspective')
set(gca,'FontSize',16)
axis tight
xlabel('z (nm)','FontSize',18)
ylabel('y (nm)','FontSize',18)
zlabel('x (nm)','FontSize',18)
%title(['Metropolis Monte Carlo step ' num2str(mcStep)])
view([126.5 23])
私の問題は、私は
Index exceeds matrix dimensions.
Error in PlotCluster (line 34)
plot3(x(ia),y(ia),z(ia),'b.') %,'MarkerSize',4)
このエラーを取得していますおよびIAは行くだろう、なぜ私は見ていないですx配列の範囲外です。 fgets
をload
に変更するとどうなりますか?それはそれが正しい番号を読み取る唯一の方法であった(49sと50sは非常に奇妙でした)。
私を悩ましている主なビットは、これらの行です(ここでは、 'a' 'N'、 'P' など)
ia = data == 0;
in = data == 1;
ip = data == 2;
彼らはIaがアレイなる等data
からia
への割当と暗黙if
文のように見えます。確信はないけど。
これを理解する助けとなると大変感謝します。
問題を修正しました。入力内容を正しく更新していませんでした。 この質問に答える人のためにこれをクリアするには、 'ia = data == 0'は '配列とデータのサイズを同じにし、ロジック(data == 0 )trueまたはfalse ' – Pureferret
あなたの問題を解決した場合は、答えとして投稿してください。 – Mat
申し訳ありませんが、これはまだ新しいです。そうするでしょう! ちょうど言われました_評判が100未満のユーザーは、質問後8時間は自分の質問に答えることができません。あなたは3時間で自己回答することができます。それまでは、コメントを使用するか、代わりに質問を編集してください。 – Pureferret