2013-09-16 185 views
0

我在單維中嘗試我的數組,但收到錯誤「下標分配尺寸不匹配」。不過,如果我先製作一個臨時變量,我可以執行相同的操作。有沒有辦法做到這一點,而不創建臨時(Y)變量?更好的是,有沒有辦法做到這一點沒有循環,通過使用索引矢量?下標分配尺寸不匹配 - 覆蓋尺寸

謝謝。

x = zeros(2,5); 
idx = [1 2]; 

% This doesn't work... 
% x(idx,:) = [x(idx,:) 1]; 

% This doesn't work... 
% for i=idx 
%  x(i,:) = [x(i,:) 1]; 
% end 

% This works... 
for i=idx 
    y(i,:) = [x(i,:) 1]; 
end 
x = y; 
+1

你想做什麼?用一個維度在一個維度上生長x?做'x = [x ones(size(x,1),1)];' – chappjc

回答

1

這個錯誤是因爲x(idx,:)是規模2×和尺寸爲1x1 1,所以你不能將兩者連接起來。下面是我在八度得到錯誤:

>> [x(idx,:) 1] 
error: horizontal dimensions mismatch (2x5 vs 1x1) 

你可以,但是,這樣做:

>> [x(idx,:) ones(length(idx),1)] 
ans = 

    0 0 0 0 0 1 
    0 0 0 0 0 1 

你需要一箇中間變量,但(你y)。