plot3(e1,e2,Q1) を実行するには、エラーメッセージにあるように、e1, e2, Q1 を同じサイズの1次元配列にする必要があります。とりいそぎ、以下2点の修正でプロットできることを確認しました(ちなみに以下はあくまで応急処置ですので、e1, e2, Q1の事前割り当てやベクトル化などもご検討下さい)。
① e1(i)=x; を、 y に対するforループの中に e1(j)=x; として入れる
② Q1 が2次元配列にならないよう、 Q1(j)=(I1-I0)/(sqrt(N1)+sqrt(N0)); に修正する
これでe1, e2, Q1 を同じサイズの1次元配列にすることができます。あとは見やすさを考慮して以下のようにプロット部分を修正のうえ実行してみました。
plot3(e1,e2,Q1,'.');
grid on
xlabel('x','FontSize',14)
ylabel('y','FontSize',14)
zlabel('Q1','FontSize',14)