matlab中如何交换矩阵的行或者列 求助Matlab如何让矩阵行交换更快速

matlab\u4e2d\u600e\u6837\u5c06\u4e00\u4e2a\u56db\u884c\u4e09\u5217\u7684\u77e9\u9635\u7684\u4efb\u610f\u884c\u4e0e\u7b2c\u4e00\u884c\u5143\u7d20\u4ea4\u6362

>> clear
>> a=reshape(1:12,4,3)
b=a(1,:)
n=3;
c=a(n,:)
a(n,:)=b;
a(1,:)=c;
a

a =
1 5 9
2 6 10
3 7 11
4 8 12
b =
1 5 9
c =
3 7 11
a =
3 7 11
2 6 10
1 5 9
4 8 12

\u4f60\u597d\u3002

U\u662f\u77e9\u9635\uff0c\u4ea4\u6362k\u884c\u548cmax_row\u884cMatlab\u81ea\u5df1\u7684\u51fd\u6570\u662f\u8fd9\u6837\u505a\u7684\uff1a
U.x([k max_row],1:n) = U.x([max_row k],1:n); % swap rows

\u5982\u679c\u6211\u7684\u56de\u7b54\u6ca1\u80fd\u5e2e\u52a9\u60a8\uff0c\u8bf7\u7ee7\u7eed\u8ffd\u95ee\u3002
\u60a8\u4e5f\u53ef\u4ee5\u5411\u6211\u4eec\u56e2\u961f\u53d1\u51fa\u8bf7\u6c42\uff0c\u4f1a\u6709\u66f4\u4e13\u4e1a\u7684\u4eba\u6765\u4e3a\u60a8\u89e3\u7b54\u3002

1、如果是需要按列翻转的话,就输入下面的代码:

fliplr(A)。

2、如果是需要按交换首尾列的话,就输入下面的代码:

A(:,[1,end]) = fliplr(A(:,[1,end]))

3、如果是需要按行翻转的话,就输入下面的代码:

flipud(A)

4、然后就完成了。



用permute函数就可以

函数功能:在MATLAB、FreeMat中,该函数按指定的向量来重新排列一个数组。

语法格式:

B = permute(A,order)

按照向量order指定的顺序重排A的各维,B中元素和A中元素完全相同,但由于经过重新排列,在A、B访问同一个元素使用的下标就不一样了,order中的元素必须各不相同。

扩展资料:

应用举例:

给定任一矩阵A,表达式:

permute(A,[2 1]) 和A.'相同的。

比如:

A = [1 2; 3 4]

A =

1 2

3 4

permute(A,[2 1])

ans =

1 3

2 4

下面的代码排列三维数组:

X = rand(12,13,14);

Y = permute(X,[2 3 1]);

size(Y)

ans =

13 14 12

参考资料来源:百度百科-permute



额,楼主是想做什么啊?
要是想求矩阵的转置,直接有命令就可以了啊,加一个 ' 就能转置了。
>> a=[1 2 3
4 5 6
7 8 9]
a'
ans =
1 4 7
2 5 8
3 6 9

若是只想转换某两行或列,找个中间量储存一下就行了啊,
调换第一列和第二列数据:
b=a(:,1);
a(:,1)=a(:,2);
a(:,2)=b;
a

a =
2 1 3
5 4 6
8 7 9

用permute函数就可以

  • matlab涓浣曚氦鎹㈢煩闃电殑琛鎴栬呭垪
    绛旓細1銆佸鏋滄槸闇瑕佹寜鍒楃炕杞鐨璇濓紝灏辫緭鍏ヤ笅闈㈢殑浠g爜锛歠liplr(A)銆2銆佸鏋滄槸闇瑕佹寜浜ゆ崲棣栧熬鍒楃殑璇濓紝灏辫緭鍏ヤ笅闈㈢殑浠g爜锛欰(:,[1,end]) = fliplr(A(:,[1,end]))3銆佸鏋滄槸闇瑕佹寜琛岀炕杞殑璇濓紝灏辫緭鍏ヤ笅闈㈢殑浠g爜锛歠lipud(A)4銆佺劧鍚庡氨瀹屾垚浜嗐
  • 濡備綍鐢matlab瀹炵幇鐭╅樀鐨勮鍜屽垪浜掓崲?
    绛旓細A==x锛氬皢鐭╅樀A鐨姣忎釜鍏冪礌涓巟姣旇緝锛屽鏋滅浉绛夛紝鐩稿簲浣嶇疆鐨勫厓绱犲氨绛変簬1锛屽惁鍒欎负0銆俧ind(X)锛氳繑鍥瀀涓潪闆跺厓绱犵殑绱㈠紩锛堝嵆琛屽垪浣嶇疆锛夈3銆佸疄渚嬫紨绀猴細鎵惧嚭鐭╅樀A涓墍鏈夌瓑浜3鐨勫厓绱犵殑琛屽垪浣嶇疆 鎵撳紑matlab锛屽湪鍛戒护绐楀彛杩愯濡備笅浠g爜锛>> A=[1 2 3 4 5;6 7 3 1 2]>> [m,n]=find(A==3)浠庤繍琛岀粨...
  • matlab 涓,鎬庝箞璁╀竴涓鐭╅樀鎸夋煇涓鍒楁帓鍒,骞朵笖琛屼篃璺熺潃鍙樺姩?
    绛旓細鍦╩atlab涓璁╃煩闃垫寜鏌愪竴鍒楁帓鍒楋紝闇瑕佺敤鍒版帓搴忕畻娉曞鏌愪竴鍒楁暟鎹帓搴忥紝鐒跺悗鍦ㄦ帓搴忕畻娉曠殑if鍒ゆ柇鍙ヤ腑锛屼緷娆浜ゆ崲鐭╅樀涓よ鍐呭銆備互棰樼洰涓煩闃典负渚嬶紝鍙互鍒╃敤鍐掓场娉曞绗笁鍒楁暟鎹帓搴忥紝瀹炵幇绋嬪簭濡備笅锛歛=[5 7 8;4 6 1;8 0 7];n=length(a);b=[];for i=1:n-1 for j=1:n-i if(a(j,3)>a(...
  • matlab涓煩闃典氦鎹涓よ鏄粈涔堝懡浠ゅ憖
    绛旓細鎻愪緵涓绉嶄釜浜鸿涓烘洿绠鍗曠殑鏂规硶a([n m],:)=a([m n],:),鍏朵腑鐨刴n灏辨槸浣犳兂浜ゆ崲鐨勮銆傝嚦浜庡垪浜ゆ崲锛歛(:,[m n])=a(:,[n m])銆傝寰楄绛旀濂界殑鍚屽瑕佽寰楃偣璧炲摝锛
  • matlab涓浣曚氦鎹㈢煩闃电殑琛鎴栬呭垪
    绛旓細瑕佹槸鎯虫眰鐭╅樀鐨杞疆锛岀洿鎺ユ湁鍛戒护灏卞彲浠ヤ簡鍟婏紝鍔犱竴涓 '灏辫兘杞疆浜嗐>> a=[1 2 3 4 5 6 7 8 9]a'ans = 1 4 7 2 5 8 3 6 9 鑻ユ槸鍙兂杞崲鏌愪袱琛屾垨鍒楋紝鎵句釜涓棿閲忓偍瀛樹竴涓嬪氨琛屼簡鍟婏紝璋冩崲绗竴鍒楀拰绗簩鍒楁暟鎹細b=a(:,1);a(:,1)=a(:,2);a(:,2)=b;a a = 2 1 3 ...
  • matlab 鍗曞紩鍙风煩褰㈣浆缃槸浠涔堟剰鎬?
    绛旓細matlab涓崟寮曞彿 ' 琛ㄧず鐭╁舰鍏辫江杞疆锛屽嵆浜ゆ崲鐭╅樀鐨琛屽垪鍏冪礌锛屽悓鏃朵繚鎸佹瘡涓厓绱犵殑瀹為儴涓嶅彉锛岃櫄閮ㄧ鍙峰彇鍙嶃傚浜庡疄鏁扮煩闃碉紝鐢变簬铏氶儴涓0锛屾墍浠ヤ粎鏄氦鎹㈢煩闃电殑琛屽垪鍏冪礌銆傜ず渚嬪涓嬶細1銆佽浆缃疄鏁扮煩闃 鍦╩atlab鍛戒护绐楀彛杈撳叆濡備笅浠g爜锛屽彲瑙丄'浣垮緱鐭╅樀A鐨勮銆佸垪鍏冪礌浣嶇疆浜掔浉浜ゆ崲浜嗐2銆佽浆缃鏁扮煩闃 鍦╩atlab鍛戒护绐楀彛...
  • matlab 涓,鎬庝箞璁╀竴涓鐭╅樀鎸夋煇涓鍒楁帓鍒,骞朵笖琛屼篃璺熺潃鍙樺姩?
    绛旓細1銆佹墦寮MATLAB杞欢锛屽彲浠ヤ娇鐢╫rtrows鍑芥暟锛屽湪鍛戒护琛岀獥鍙e唴鎵撳叆help sortrows锛屽氨浼氬嚭鐜颁互涓嬬敾闈紝灏卞涓嬪浘鎵绀猴紝鏍规嵁鍑虹幇鐨勬彁绀鸿繘琛屼笅涓姝ヨ繘绋嬨2銆佹湁浜嗗嚱鏁颁箣鍚庯紝杩欐椂闇瑕佸垱寤轰竴涓鐭╅樀锛岀煩闃礱涓3琛3鍒楋紝鍙互杈撳叆鈥渟ortrows(a,1)鈥濓紝灏变細鐪嬪埌浠ヤ笅鐢婚潰锛屽涓嬪浘鎵绀猴紝杩欎釜鍑芥暟鏄鏁翠釜鐭╅樀鎸夌涓鍒楄繘琛屽崌搴...
  • 鍦╩atlab閲A([1,2],:)=A([2,1],:)鏄粈涔堟剰鎬?
    绛旓細鍦╩atlab閲A([1,2],:)=A([2,1],:)鐨勬剰鎬濇槸灏咥鐭╅樀鐨绗簩銆佷竴琛岀殑鏁版嵁璧嬪肩粰A鐭╅樀鐨勭涓銆佷簩琛岀殑鏁版嵁锛屼篃灏辨槸璇达紝绗竴琛岀殑鏁版嵁涓庣浜岃鐨勬暟鎹浜掓崲锛屽緱鍒版柊鐨凙鐭╅樀銆備緥濡傦細A=magic(5)>>A([1,2],:)>>A([2,1],:)>>A([1,2],:)=A([2,1],:)...
  • matlab涓A(:,1)'琛ㄧず浠涔?
    绛旓細matlab涓A(:,1)'琛ㄧず灏嗕簩缁鐭╅樀A鐨勭涓鍒楄浆缃负琛屽悜閲忋傝缁嗚鏄庡涓嬶細A(x,y)琛ㄧず浜岀淮鐭╅樀绗瑇琛岀y鍒椾綅缃殑鍏冪礌锛寈涓:鍒欒〃绀烘墍鏈鐨勮銆傚洜姝わ紝A(:,1)灏辫〃绀篈鐨勭1鍒楃殑鎵鏈夊厓绱狅紝杩欐槸涓涓垪鍚戦噺銆傜煩闃礎鍙充笂瑙掑姞涓鐭拠锛'锛夊嵆A'琛ㄧずA鐨勮浆缃煩闃碘斺浜ゆ崲A鐨勮鍒椾綅缃紙褰揂涓哄鏁扮煩闃碉紝鏄...
  • 鍦╩atlab涓,濡備綍鍦ㄤ竴涓凡鐭鐭╅樀涓彇闅忔満涓や釜鏁板苟浜ゆ崲??寰,姹傚ぇ绁炴嫰 ...
    绛旓細鎬濊矾灏辨瘮杈冪畝鍗曪細闅忔満浜х敓涓や釜鏁帮紝鍙栧艰寖鍥翠负[1锛岀煩闃电殑鍒楁暟],m,n 闅忔満浜х敓涓や釜鏁帮紝鍙栧艰寖鍥翠负[1锛鐭╅樀鐨勮鏁癩,q,p 鍓╀笅鐨勫氨鏄埄鐢ㄤ笅鏍浜ゆ崲鍜倀=X(m,q)X(n,p)=X(m,q)X(m,q)=t 瀹屾垚
  • 扩展阅读:matlab如何将两行交换 ... matlab中交换矩阵的两行 ... matlab for循环输出矩阵 ... 全一矩阵matlab ... matlab交换矩阵的两列 ... matlab用for循环生成矩阵 ... matlab中如何生成子矩阵 ... matlab矩阵的行列变换 ... matlab两个矩阵替换某一行 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网