Replacing elements in Array

7 ビュー (過去 30 日間)
Angela
Angela 2012 年 7 月 20 日
I have two 48 x 61 matrices, LE and Q. If the first and last row value of LE are the same, for those rows, I want the values of Q to equal Q(:, 61).
This is what I initially wrote, but am getting an error message.
C = find(LE(:,1) == LE(:,61)); % Outputs rows in which first and last values are equivalent.
Q(C,:) = Q(C, 61); % For all values in rows C, make every value in that row (of Q) the last value in row Q.
Error: subscript assignment dimension mismatch.
Any suggestions? Thanks!
  1 件のコメント
Image Analyst
Image Analyst 2012 年 7 月 20 日
It's always nice if the poster supplies some sample data in advance to make it easy for people to try things for her. I mean, why make it hard for people to help you?

サインインしてコメントする。

採用された回答

Jan
Jan 2012 年 7 月 20 日
Q(C, :) = repmat(Q(C, 61), 1, size(Q, 2));

その他の回答 (1 件)

Albert Yam
Albert Yam 2012 年 7 月 20 日
When length(C) > 1 , Matlab doesn't know how to replace the values.
(length(C) x 61) matrix , and a length(C) vector
If you loop it for every C, it should work, someone else might be able to point out a way without looping.
C = find(LE(:,1) == LE(:,61));
for ii=1:length(C)
Q(C(ii),:) = Q(C(ii), 61);
end

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by