Shifting columns in matrix Matlab
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Afluo Raoual
am 12 Feb. 2021
Bearbeitet: Afluo Raoual
am 16 Mär. 2021
Dear members,
I have a matrix in which its tril and triu are zeros
And I want to shift up its rows
How can I program it in Matlab please?
3 Kommentare
the cyclist
am 12 Feb. 2021
What is in the matrix locations that are "empty" in your top image of H. (An element of a numeric array cannot be empty.)
Can you upload the matrix H in a MAT file?
Akzeptierte Antwort
the cyclist
am 13 Feb. 2021
Bearbeitet: the cyclist
am 13 Feb. 2021
Slightly simpler version of @Nora Khaled's idea. It will also generalize to an (N-1) X N array in a way that I believe makes sense, in case that is important.
[~,c] = size(H);
r = c/2;
M = zeros(r,c);
for i=2:2:c
j = i/2;
M(:,i-1:i) = H(j:j+r-1,i-1:i);
end
You don't really need to define r or j as a separate variable, but I think it is a bit clearer.
Also, if you did need this for large arrays, it is more memory-efficient to preallocate M as I did, rather than building it by continually appending.
Weitere Antworten (1)
Nora Khaled
am 12 Feb. 2021
clear all;
clc
H=[0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0
1 1 1 0 0 1 0 0 0 0
1 0 0 1 1 0 0 1 0 0
1 1 0 0 1 1 1 0 0 1
0 0 1 1 1 0 1 1 1 0
0 0 0 0 0 1 0 0 1 1
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 1 1];
[~,c]=size(H);
j=0;
M=[];
for i=1:2:c
j=j+1;
M=[M H(j:j+4,i:i+1)];
end
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!